【问题标题】:need to SUM an SQL statement需要对一条 SQL 语句求和
【发布时间】:2014-01-28 21:42:57
【问题描述】:

我需要使用 SUM 将我数据库中的所有薪水相加。我很难让它工作。这是给我四行的陈述。除“DIRECT SALARY COST”外,所有其他列均相同。如何将这四项直接工资成本相加,以便拥有一条独特的线路?

这是我的代码..

SELECT C.FOS_PROJ_ID_UNQU||'-'||C.FOS_PROJ_ID_STG||'-'||C.FOS_PROJ_ID_ELMT AS "STATE PROJECT ID",
  V.VEND_NM AS "VENDOR NAME",
  CC.WRKO_NB AS "WORK ORDER NUMBER",
  TO_CHAR(CCD.ATHZ_DT, 'MON-DD-YYYY') AS "AUTHORIZATION DATE",
    ----I need to SUM the following line ----
  TO_CHAR((CTD.DCT_SAL_COST_AMT),'$999,999,999.99') AS "DIRECT SALARY COST",
  TO_CHAR(CCC.OVHD_COST_AMT,'$999,999,999.99') AS "OVERHEAD COSTS",
  TO_CHAR(CTD.DCT_SAL_COST_AMT + CCC.OVHD_COST_AMT,'$999,999,999.99') AS "TOTAL"
FROM DOT1CARO.DT_VEND V, DOT1CARO.DT_CSPJ_CTRC CC, DOT1CARO.DT_CSPJ C, DOT1CARO.DT_CSPJ_CTRC_DTL CCD, DOT1CARO.DT_CSPJ_CTRC_COST CCC, DOT1CARO.DT_CTCST_TASK_DTL CTD
WHERE V.VEND_ID=CC.VEND_ID
AND CC.CSPJ_ID=C.CSPJ_ID
AND CC.CSPJ_CTRC_ID=CCD.CSPJ_CTRC_ID
AND CCD.CSPJ_CTRC_DTL_ID=CCC.CSPJ_CTRC_DTL_ID
AND CCC.CSPJ_CTCST_ID = CTD.CSPJ_CTCST_ID
AND CCD.ATHZ_DT = '14-NOV-2013'
AND V.VEND_NM LIKE 'Ka%
ORDER BY 2;

【问题讨论】:

标签: sql select sum


【解决方案1】:

如果要将多个字段一起添加到同一行中:

CTD.DCT_SAL_COST_AMT + CCC.OVHD_COST_AMT + .... AS Combined_Amounts

如果您想跨行单独汇总它们:

SELECT NonAggCol1, NonAggCol2, TO_CHAR((SUM(CTD.DCT_SAL_COST_AMT)),'$999,999,999.99') AS "DIRECT SALARY COST"
FROM Table1 a
JOIN Table2 b
  ON a.col1 = b.col1
JOIN Table3 c
  ON a.col1 = c.col1
GROUP BY NonAggCol1, NonAggCol2

如果您想在行内和跨行添加它们,您可以将以上两者结合起来。确保在您的GROUP BY 列表中包含每个非聚合字段。消除不推荐使用的连接语法是个好主意。

【讨论】:

  • 谢谢,有帮助。我没有意识到我需要对所有列进行 GROUP BY。
猜你喜欢
  • 2018-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-22
  • 1970-01-01
  • 2010-09-23
  • 1970-01-01
相关资源
最近更新 更多