请教个sql问题,日汇总和月汇总

先讲需求,业务人员需要在一张表里,看到一行数据,分别是日汇总和月汇总。

我想在sql里写一个日期,通过这个日期来获取年月,然后再查询对应当月数据。

SELECT

DEPARTMENT_ID,

EAT_ZKNAME,

sum(CASE WHEN RPT_DATE='2021-09-01' THEN ZKMoney ELSE 0 end)--日汇总

        这一行该咋写当前日期的月汇总

FROM

EAT_DAYZKINFO

GROUP BY

DEPARTMENT_ID,

EAT_ZKNAME

猫头鹰的头 发布于 2021-9-24 14:49 (编辑于 2021-9-24 14:53)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
呼呼哈哈Lv5初级互助
发布于2021-9-24 14:52

sum(CASE WHEN RPT_DATE='2021-09' THEN ZKMoney ELSE 0 end)

  • 猫头鹰的头 猫头鹰的头(提问者) 咋可能,靓仔,你这完全不可能是
    2021-09-24 14:53 
  • 呼呼哈哈 呼呼哈哈 回复 猫头鹰的头(提问者) 当月汇总参数就应该是年月就行了哈
    2021-09-24 14:54 
  • 猫头鹰的头 猫头鹰的头(提问者) 回复 呼呼哈哈 日期字段里,都是年月日的格式,你传递一个2021-09进去,直接报错
    2021-09-24 14:56 
  • 呼呼哈哈 呼呼哈哈 回复 猫头鹰的头(提问者) 你把日期转换成年月不就行了么?sum(CASE WHEN to_char(RPT_DATE,\'yyyy-mm\')=\'2021-09\' THEN ZKMoney ELSE 0 end)
    2021-09-24 15:01 
最佳回答
0
胡歌Lv7中级互助
发布于2021-9-24 14:56

sum(字段) over(PARTITION by month(日期)  order by 日期)

最佳回答
0
shirokoLv6资深互助
发布于2021-9-24 15:04

sum(CASE WHEN substr(RPT_DATE,1,7)='2021-09' THEN ZKMoney ELSE 0 end)

最佳回答
0
Z4u3z1Lv6专家互助
发布于2021-9-24 15:08

https://blog.csdn.net/aiming66/article/details/80717802 

你是不是需要的这个的一个变形

  • 4关注人数
  • 581浏览人数
  • 最后回答于:2021-9-24 15:08
    请选择关闭问题的原因
    确定 取消
    返回顶部