也许我不需要使用分组集,但是它可以为我提供所有的总计。我需要的是基于列comp_code值的总计。我只是不确定如何去做?我曾尝试进行汇总和汇总,但都没有成功,只是使表格看起来非常凌乱。
任何帮助将不胜感激。预先感谢您的帮助和您的宝贵时间。
当前SQL
January (count from 11/01/2019 to 01/31/2020)
February (count from 11/01/2019 to 01/31/2020)
March (count from 12/01/2019 to 02/29/2019)
April (count from 02/01/2020 to 04/30/2020)
电流输出
select nvl(a.comp_code, 'GRAND TOTAL) as COMP_CODE, a.inv_prex, a.inv_num, to_char(a.inv_date,'yy-mm-dd') as inv_date, a.cust_code, b.cust_name, sum(round(a.inv_amt,2)) as inv_amt, a.inv_reg_num
from c_inv_h a
left join m_cust_h_b
on a.comp_code=b.comp_code and a.cust_code=b.cust_code
where a.inv_date between to_date('20\06\01', 'yy\mm\dd') and to_date('20\06\24', 'yy\mm\dd')
and a.cust_code='102204'
group by
grouping sets
((),
(a.inv_prex, a.inv_num, a.inv_date, a.comp_code, a.cust_code, b.cust_name, a.inv_reg_num))
我正在尝试实现的输出
comp_code | inv_prex | inv_num | inv_date | cust_code | cust_name | inv_amt | inv_reg_num
---------------------------------------------------------------------------------------------
C4 AIC 410 20-06-01 102204 test comp 157.5 302
C4 AIC 432 20-06-05 102204 test comp 63 301
T3 AIT 1272 20-06-01 102204 test comp 1134.97 335
GRAND TOTAL 1355.47
答案 0 :(得分:2)
我想你想要
group by grouping sets ((a.inv_prex, a.inv_num),
(a.inv_prex, a.inv_num, a.inv_date, a.comp_code, a.cust_code, b.cust_name, a.inv_reg_num)
)