示例表:
ACC ACCN PART DESC UT SITE QTY HAZ SERIAL S2 STATUS
TR1 MSR KKGR NO Y 56 2 N ST
TR1 MSR KUIJ NO Y 98 2 N HD
TR1 MSR KKGR NO Y 56 1 N ST
TR2 MSR KUIJ NO Y 98 5 N ST
TR2 MSR KKGR NO Y 56 1 N ST
TR5 MSR KUIJ NO Y 98 5 N ST
TR1 MSR KUIJ NO Y 98 5 N KKMH ST期望的结果:
ACC ACCN PART DESC UT SITE QTY HAZ SERIAL S2 STATUS
TR1 MSR KKGR NO Y 56 3 N ST
TR1 MSR KUIJ NO Y 98 2 N HD
TR2 MSR KUIJ NO Y 98 5 N ST
TR2 MSR KKGR NO Y 56 1 N ST当序列为空/NULL时提取所有列的SQL查询,然后按站点、部件和状态分组。但QTY列值=站点、部件、状态分组的qty总和。
我试着用
SELECT ACC,
ACCN,
PART,
DESC,
UT,
SITE,
QTY,
HAZ,
SERIAL,
S2,
STATUS
FROM mytable
WHERE acc IN ('TR1','TR2')
AND serial = ''
GROUP
BY (part,site,status)但我得到的错误如下:
错误:列"mytable.account“必须出现在GROUP BY子句中或在聚合函数中使用
发布于 2020-05-29 20:47:29
从您想要的输出中,看起来您想要对选择中所有其他列分组的数量求和。
SELECT ACC,
ACCN,
PART,
DESC,
UT,
SITE,
SUM(QTY) as QTY,
HAZ,
SERIAL,
S2,
STATUS
FROM mytable
WHERE acc IN ('TR1','TR2')
AND serial = ''
GROUP BY ACC,
ACCN,
PART,
DESC,
UT,
SITE,
HAZ,
SERIAL,
S2,
STATUS https://stackoverflow.com/questions/62086090
复制相似问题