简体   繁体   English

使用 case 表达式求和

[英]Summing using a case expression

I am looking to roll up my numbers.我正在寻找汇总我的数字。

 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'

在此处输入图片说明

I want to return 1 record per SOHNUM_0,the sum of YQTYORD_0 by SOHNUM_0 and ORDINVNOT_0.我想为每个 SOHNUM_0 返回 1 条记录,即 SOHNUM_0 和 ORDINVNOT_0 的 YQTYORD_0 的总和。

I want to return 1 record per SOHNUM_0,the sum of YQTYORD_0 by SOHNUM_0 and ORDINVNOT_0.我想为每个 SOHNUM_0 返回 1 条记录,即 SOHNUM_0 和 ORDINVNOT_0 的 YQTYORD_0 的总和。

Are you just looking for simple aggregation?您只是在寻找简单的聚合吗?

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

Note:笔记:

  • I modified your query so it uses table aliases - this makes it shorter我修改了您的查询,因此它使用表别名 - 这使它更短

  • you should prefix all columns in the query with the table they belong to, to make your query unmabiguous and easier to understand您应该使用它们所属的表作为查询中的所有列的前缀,以使您的查询明确且易于理解

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM