一.场景

如果你遇到如下的场景,查询某个人的补贴汇总情况,我们该如何通过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函数的字段还原成原来的字段即可。

报表统计sql应该如何写?相关推荐

  1. mysql 报表统计sql使用实例_mysql 案例~mysql元数据的sql统计

    一 简介:今天我们来收集下提取元数据的sql 二 前沿: information_schema  引擎 memory 元数据收集表 三 sql语句: 1#没有使用索引的表统计 SELECT t.TAB ...

  2. Mysql报表统计常用sql

    按半小时报表统计. SELECT COUNT(1) AS value, DATE_FORMAT(dataStartTime,'%H:%i') AS category FROM ( SELECT DAT ...

  3. es统计mysql 报表_Elasticsearch(简称ES)实现日报表、月报表、年报表统计,没数据补0...

    前言: 这是1张相对简单些报表示例,用sql语句也能实现,但主要是为了便于大家理解ES聚合实现报表的使用方法. 之前写过"java实现日报表.月报表统计,没数据补0"文章,http ...

  4. Elasticsearch(简称ES)实现日报表、月报表、年报表统计,没数据补0

    前言: 这是1张相对简单些报表示例,用sql语句也能实现,但主要是为了便于大家理解ES聚合实现报表的使用方法. 之前写过"java实现日报表.月报表统计,没数据补0"文章,http ...

  5. 报表统计-mysql存储过程

    首先mysql如何创建一个存储过程: 1.创建一个日常考核的存储过程: drop procedure if exists pr_dailycheck; 首先判断是否存在同名的存储过程,如果存在同名的存 ...

  6. bzoj 1058: [ZJOI2007]报表统计 (Treap)

    链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1058 题面; 1058: [ZJOI2007]报表统计 Time Limit: 15 Sec ...

  7. 【BZOJ1058】[ZJOI2007]报表统计 STL

    [BZOJ1058][ZJOI2007]报表统计 Description 小Q的妈妈是一个出纳,经常需要做一些统计报表的工作.今天是妈妈的生日,小Q希望可以帮妈妈分担一些工作,作为她的生日礼物之一.经 ...

  8. hql 查询关联对象_在spring data jpa中如何做报表统计查询?

    问题描述 之前有个简单的报表统计需求,如果用sql的话是比较简单的,但是基于spring data jpa还没有遇到好的解决方案,折腾半天用spring data提供的几种方式都不能解决,spring ...

  9. bzoj 1058: [ZJOI2007]报表统计(set+multiset)

    1058: [ZJOI2007]报表统计 Time Limit: 15 Sec  Memory Limit: 162 MB Submit: 3774  Solved: 1284 [Submit][St ...

最新文章

  1. mybatis应用(三)优化
  2. Windows 7 下安装 Oracle 数据库和 PL/SQL Developer
  3. Netty新连接接入与NioSocketChannel分析
  4. H3C查看系统启动配置文件
  5. babel-preset-env使用介绍
  6. 19.Linux系统管理
  7. Mirth Connect 互联互通 第五章 查询发送者通道
  8. C++_SHFileOperation文件夹操作
  9. 谷歌SEO之如何选择关键词(2021更新教程)
  10. 华为网络篇 BPDU报文格式-11
  11. Android背景虚化的PopupWindow 可指定虚化区域
  12. 基于beego的高并发开源论坛框架Casnode
  13. 关于51/STC单片机中断优先级的调整
  14. 思科设备VLAN配置命令
  15. openfeign 转发post 接口 错误 Incomplete output stream executing POST http://xxxx
  16. C语言八行杨辉三角空格数,C语言 杨辉三角
  17. 对于畸变较小的相机,如何简易计算相机参数
  18. Rk3566 Rk3326s Android11 修改WLAN直连默认名称
  19. 存储服务器最高支持多少块硬盘,华为存储率先支持最大容量6TB氦气硬盘
  20. 《具体数学》部分习题解答6

热门文章

  1. c语言中使用bool_在C语言中使用bool
  2. OSChina 周一乱弹 —— 有妹子愿意帮助一位爱情残疾人么?
  3. 操作无法完成。键入的打印机名不正确,或者指定的打印机没有连接到服务器上的解决办法!...
  4. 用计算机说早上好,早上好说说句子清爽干净 每日一句早安心语励志
  5. WPS合并单元格如何排序
  6. Nbtstat命令用法
  7. 【总结整理】已读功能---摘自《馒头商学院》
  8. 在OpenCV里用ellipse画椭圆形
  9. 聚华祥科技:抖音的运营技巧分析
  10. oracle 进去rman,oracle数据库RMAN使用方法简介 | IT民工 or IT精英