Sql 如何使用分组集根据列值计算总计?
也许分组集不是我需要使用的,但它能给我所有东西的总数。我需要的是基于列comp_code值的总计。我只是不知道该怎么办?我试过折叠和卷起,但没有成功,只是把桌子弄得乱七八糟 任何帮助都将不胜感激。提前感谢您的帮助和时间 当前SQLSql 如何使用分组集根据列值计算总计?,sql,oracle,Sql,Oracle,也许分组集不是我需要使用的,但它能给我所有东西的总数。我需要的是基于列comp_code值的总计。我只是不知道该怎么办?我试过折叠和卷起,但没有成功,只是把桌子弄得乱七八糟 任何帮助都将不胜感激。提前感谢您的帮助和时间 当前SQL 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.
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
我正在努力实现的产出
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
GRAND TOTAL 220.5
T3 AIT 1272 20-06-01 102204 test comp 1134.97 335
GRAND TOTAL 1134.97
我想你想要:
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)
)
我想你想要:
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)
)
嗨,戈登,非常感谢你。你的回答我能够达到我想要的结果,只是在第一组分组中切换了一些列名。看来我没有正确使用分组集,所以谢谢你告诉我正确的方法。嗨,戈登,非常感谢你。你的回答我能够达到我想要的结果,只是在第一组分组中切换了一些列名。看来我没有正确使用分组集,所以谢谢你给我展示了正确的方法。