首页 > 解决方案 > 使用 case 表达式求和

问题描述

我正在寻找汇总我的数字。

 SELECT 
     SORDERQ.SOHNUM_0,
     YQTYORD_0, 
     ORDINVNOT_0
 FROM LIVE.SORDER
 LEFT JOIN LIVE. SORDERQ ON SORDER.SOHNUM_0 = SORDERQ.SOHNUM_0
 WHERE SORDER.SOHNUM_0 = 'SC111-162420_19'
 AND ZBPSELECTION_0 <> ''
 AND YCROPYR_0 = '2019'
 AND SORDER.SALFCY_0 = '111'

在此处输入图像描述

我想为每个 SOHNUM_0 返回 1 条记录,即 YQTYORD_0 与 SOHNUM_0 和 ORDINVNOT_0 之和。

标签: sqlsql-servertsqlgroup-by

解决方案


我想为每个 SOHNUM_0 返回 1 条记录,即 YQTYORD_0 与 SOHNUM_0 和 ORDINVNOT_0 之和。

您只是在寻找简单的聚合吗?

SELECT 
    q.SOHNUM_0,
    SUM(YQTYORD_0) SUM_YQTYORD_0, 
    ORDINVNOT_0
FROM LIVE.SORDER o
LEFT JOIN LIVE.SORDERQ q ON o.SOHNUM_0 = q.SOHNUM_0
WHERE 
    o.SOHNUM_0 = 'SC111-162420_19'
    AND o.SALFCY_0 = '111'
    AND ZBPSELECTION_0 <> '' 
    AND YCROPYR_0 = '2019' 
GROUP BY 
    q.SOHNUM_0, 
    ORDINVNOT_0

笔记:

  • 我修改了您的查询,因此它使用表别名 - 这使它更短

  • 您应该在查询中的所有列前面加上它们所属的表,以使您的查询明确且更易于理解


推荐阅读