简体   繁体   English

DB2 SQL SUM和GROUPING

[英]DB2 SQL SUM and GROUPING

I am having problems with querying and grouping. 我在查询和分组方面遇到问题。

I am needing the following output: 我需要以下输出:

officr, cbal, sname  
ABC, 500.00, TOM JONES  
ABC, 200.00, SUE JONES  
ABC TOTAL 700.00  

RAR, 100.10, JOE SMITH  
RAR, 200.05,  MILES SMITH  
RAR TOTAL 300.15  

SQL below produces the error: 下面的SQL会产生错误:

[DB2 for i5/OS]SQL0122 - Column SNAME or expression in SELECT list not valid. [DB2 for i5 / OS] SQL0122 - SELECT列表中的列SNAME或表达式无效。

SELECT
    lnmast.officr,  SUM(LNMAST.CBAL), lnmast.sname
FROM
    LNMAST
WHERE LNMAST.RATCOD IN (6,7,8) AND STATUS NOT IN ('2','8')
group by lnmast.officr

GROUP BY GROUPING SETS is a POWERFUL tool for grouping/cubing data. GROUP BY GROUPING SETS是一个强大的工具,用于分组/立方数据。 It lets you combine non-aggregated data with aggregated data in one query result. 它允许您将非聚合数据与聚合数据组合在一个查询结果中。

SELECT lnmast.officr,  SUM(LNMAST.CBAL), lnmast.sname
FROM LNMAST
WHERE LNMAST.RATCOD IN (6,7,8) 
  AND STATUS NOT IN ('2','8')
GROUP BY GROUPING SETS ((lnmast.officr, lnmast.sname),(lnmast.officr))

An example from IBM DOCS: www.ibm.com/support/knowledgecenter/en/... : IBM DOCS的一个示例: www.ibm.com/support/knowledgecenter/en / ...

  SELECT WEEK(SALES_DATE) AS WEEK,
         DAYOFWEEK(SALES_DATE) AS DAY_WEEK,
         SALES_PERSON, SUM(SALES) AS UNITS_SOLD       
  FROM SALES 
  WHERE WEEK(SALES_DATE) = 13
  GROUP BY GROUPING SETS ( (WEEK(SALES_DATE), SALES_PERSON),
                           (DAYOFWEEK(SALES_DATE), SALES_PERSON))
  ORDER BY WEEK, DAY_WEEK, SALES_PERSON

This results in: 这导致:

  WEEK        DAY_WEEK    SALES_PERSON    UNITS_SOLD 
  ----------- ----------- --------------- -----------
           13           - GOUNOT                   32
           13           - LEE                      33
           13           - LUCCHESSI                 8
            -           6 GOUNOT                   11
            -           6 LEE                      12
            -           6 LUCCHESSI                 4
            -           7 GOUNOT                   21
            -           7 LEE                      21
            -           7 LUCCHESSI                 4

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

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