300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 报表统计sql应该如何写?

报表统计sql应该如何写?

时间:2023-12-16 09:24:26

相关推荐

报表统计sql应该如何写?

一.场景

如果你遇到如下的场景,查询某个人的补贴汇总情况,我们该如何通过sql完成任务呢?

二.思路

思路1:

将总计行最后通过union all 拼接起来

思路2:

使用数据库自带的函数with rollup,思路二也是别人提供的

三.具体解决方法

思路1具体方法

在此不写具体的字段和表名,参考着可以将汉字补充为自己的字段或者表名

select * from (( select 身份证,服务类型,服务项目,单次补贴(公司),累积补贴(公司),单次补贴(其他),累积补贴(其他) from 统计表 ) union all (select 身份证,'' 服务类型, '总计' 服务项目,'/' 单次补贴(公司),sum(累积补贴) 累积补贴(公司),'/' 单次补贴(其他), sum(累积补贴) 累积补贴(其他) from 统计表 group by fd_card) ) t3 order by t3.服务类型,t3.服务项目

思路2具体方法

select * from (select 身份证,服务类型,服务项目,ifnull(服务类型,'总计') 服务项目,ifnull(服务类型,'/') 单次补贴(公司),sum(累积补贴(公司)) 累积补贴(公司),ifnull(服务类型,'/') 单次补贴(其他),累积补贴(其他),sum(累积补贴) 累积补贴 from 统计表 group by 身份证,服务类型 WITH ROLLUP order by 身份证,服务类型,服务项目) t3

针对思路2注意:ifnull(服务类型,‘总计’),ifnull函数的具体字段可以看自己查询的语句的具体为空的字段是哪个字段,可自行替换。查看为空的sql就不再写了,将使用ifnull函数的字段还原成原来的字段即可。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。