按照部门和月统计同比金额统计报表,已经统计出基础数据,如何按照报表要求统计出这些字段,谢谢!
4条回答 默认 最新
关注 引自免费微信小程序:皆我百晓生
为了帮您解决这个问题,首先我们需要编写一个 SQL 查询,从给定的数据中提取所需的信息。根据提供的信息,我们有一个名为
czbjc
的表,其中包含日期、年份、月份、部门名称(FDATAVALUE)、数量(qty)和金额(JE)。要得到类似图1中的报告,我们需要计算每个月的总金额,并与上一年同期进行比较,得出同比增长率。以下是创建这个报表的 SQL 查询:
WITH monthly_data AS ( SELECT DATE_FORMAT(fdate, '%Y-%m') AS month, FDATAVALUE AS department, SUM(qty) AS quantity, SUM(JE) AS amount FROM czbjc GROUP BY month, FDATAVALUE ), last_year_data AS ( SELECT DATE_FORMAT(DATE_ADD(fdate, INTERVAL -1 YEAR), '%Y-%m') AS month, FDATAVALUE AS department, SUM(qty) AS last_year_quantity, SUM(JE) AS last_year_amount FROM czbjc GROUP BY month, FDATAVALUE ) SELECT m.month, m.department, m.quantity, m.amount, COALESCE( (m.amount - ly.last_year_amount) / ly.last_year_amount * 100, 0 ) AS growth_rate FROM monthly_data m LEFT JOIN last_year_data ly ON m.month = ly.month AND m.department = ly.department ORDER BY m.department, m.month;
此查询分为两个子查询:
monthly_data
子查询计算当前年的每个月每个部门的总量。last_year_data
子查询计算前一年的每个月每个部门的总量。- 主查询将这两个子查询联接在一起,计算同比增长率并按部门和月份排序。
注意,这里使用了
COALESCE
函数处理可能的除以零错误,当去年的数据为零时,同比增长率设置为0。由于您没有提供数据库的具体类型(如MySQL、PostgreSQL等),上述代码可能会有一些小的语法差异。确保您的数据库支持所使用的函数和语法。如果您遇到任何问题,可以随时提问。
解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 如何将这个项目的ssh-TCP,改成ssh3-TCP协议
- ¥20 ic卡dump文件校检码解密
- ¥15 关于:接收到的数据不是有效的JSON格式
- ¥15 apdl语言如何增加受力分析
- ¥15 算法对比:学校优化算法与蚁群算法对比
- ¥15 机电一体化系统设计说明书
- ¥20 sgy数据提取地震波速,有人能回答吗小馋
- ¥20 c#实现打开word的功能,并且需要安装成windows服务,word打不开怎么办
- ¥15 python用ARIMA时间预测模型预测数据出错,急!
- ¥30 为什么后端传给前端vue的河流json数据不在地图中显示出来