【问题标题】:Modify Select Statement To Sum Single Field修改 Select 语句以求和单个字段
【发布时间】:2019-01-23 16:44:47
【问题描述】:

我有下面的选择语句,它提取了我需要的所有数据,但我正在尝试修改它,以便对 PROD_DATE 的 SHIFT 的 REJECTS 求和。

SELECT B.PROD_DATE,B.SHIFT,B.REJECTS
FROM REJECTS B 
LEFT OUTER JOIN HIST_ILLUM_PART C ON B.HIST_ILLUM_PART_ID = C.ID
LEFT OUTER JOIN HIST_ILLUM_RT A ON A.ID = C.HIST_ILLUM_RT_ID
WHERE
B. REJECT_CODE NOT in ('START','SETUP','QC')
AND B.PROD_DATE >= SYSDATE - 8
ORDER BY SHIFT, PROD_DATE

我试过了

   SELECT B.PROD_DATE,B.SHIFT,SUM(B.REJECTS)

我收到以下错误:ORA-00937: not a single-group group function

我需要子查询吗?

【问题讨论】:

标签: sql oracle plsql subquery


【解决方案1】:

在进行聚合时,将 GROUP BY 子句添加到您的查询中。在伪代码中,这意味着对于 B.PROD_DATE 和 B.SHIFT 的每个不同组,获取该集合的所有 B.REJECTS 的总和,

SELECT B.PROD_DATE,B.SHIFT,SUM(B.REJECTS) AS REJECTS
FROM REJECTS B 
LEFT OUTER JOIN HIST_ILLUM_PART C ON B.HIST_ILLUM_PART_ID = C.ID
LEFT OUTER JOIN HIST_ILLUM_RT A ON A.ID = C.HIST_ILLUM_RT_ID
WHERE
B. REJECT_CODE NOT in ('START','SETUP','QC')
AND B.PROD_DATE >= SYSDATE - 8
GROUP BY B.PROD_DATE,B.SHIFT
ORDER BY SHIFT, PROD_DATE

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    • 2016-07-05
    • 1970-01-01
    • 1970-01-01
    • 2011-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多