SQL分组依据和求和协助

时间:2019-02-19 16:34:19

标签: sql ibm-midrange

我需要一些帮助,因为我刚接触SQL。我已经阅读了诸如Using group by on multiple columns之类的SO上的多个帖子,而我只是无法弄清楚如何完成我需要做的事情。现在我有来自同一张表的4列,我只需要按这些列中的一列进行分组,并在每组末尾显示总和。 目前,我将其作为字符串:

SELECT
    uic5a5 as "Processor",
    acctno as "Account Number",
    orgamt AS "Loan Amount",
    date(digits(decimal(orgdt7 + 0.090000, 7, 0))) as "Origination_Date"
    FROM cncttp08.jhadat842.lnmast lnmast
    where uic5a5 is not null
    order by uic5a5 desc

哪个给了我预期的结果:

Processor | Account Number | Loan Amount | Origination Date
----------------------------------------------------------
ZJE           XXXXXXX         85000.00         2018-05-15
ZJE           XXXXXXX         150000.00        2018-12-05
CJK           XXXXXXX         75000.00         2018-06-29

我想做的就是得到这样的结果:

Processor | Account Number | Loan Amount | Origination Date | Total
-------------------------------------------------------------------
ZJE           XXXXXXX         85000.00         2018-05-15
              XXXXXXX         150000.00        2018-12-05    
                                                              235000.00
CJK           XXXXXXX         75000.00         2018-06-29
                                                              75000.00

我希望有人可以指出正确的方向来完成这项任务。

1 个答案:

答案 0 :(得分:1)

DB2应该支持分组集。如果是这样,您可以这样做:

select uic5a5 as "Processor", acctno as "Account Number",
       sum(orgamt) AS "Loan Amount",
       date(digits(decimal(orgdt7 + 0.090000, 7, 0))) as "Origination_Date"
from cncttp08.jhadat842.lnmast lnmast
where uic5a5 is not null
group by grouping sets ( (uic5a5, acctno, date(digits(decimal(orgdt7 + 0.090000, 7, 0)))), (uic5a5) );
相关问题