SQL Group By и Sum Assistance - PullRequest
       9

SQL Group By и Sum Assistance

0 голосов
/ 19 февраля 2019

Мне нужна некоторая помощь, так как я довольно плохо знаком с SQL.Я читал несколько сообщений на 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 голосов
/ 19 февраля 2019

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) );
...