查询出两个年份来以后用这两个年份的数据相减

SELECT 酒店名称,堂食,团餐,外卖,ifnull(sum(堂食),0)+ifnull(sum(团餐),0)+ifnull(sum(外卖),0)+ifnull(sum(会议),0) as 2022年餐饮收入 FROM `财务档案` where year(时间) = 2019 group by 酒店名称,堂食,团餐,外卖SELECT 酒店名称,堂食,团餐,外卖,ifnull(sum(堂食),0)+ifnull(sum(团餐),0)+ifnull(sum(外卖),0)+ifnull(sum(会议),0) as 2022年餐饮收入 FROM `财务档案` where year(时间) = 2022 group by 酒店名称,堂食,团餐,外卖

两年的数据做减法 如何通过命令实现

FineReport 帆软用户A5K1Xo5JDb 发布于 2023-4-13 16:12
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
CD20160914Lv8专家互助
发布于2023-4-13 16:16(编辑于 2023-4-13 16:26)

没有看懂,你要怎么相减,一个19年的数据。一个22年的数据。。

with tmp1 as(

SELECT 

酒店名称,

堂食,

团餐,

外卖,

ifnull(sum(堂食),0)+ifnull(sum(团餐),0)+ifnull(sum(外卖),0)+ifnull(sum(会议),0) as 19年餐饮收入 

FROM `财务档案` where year(时间) = 2019 

group by 酒店名称,堂食,团餐,外卖),

tmp2 as (

SELECT 

酒店名称,

堂食,

团餐,

外卖,

ifnull(sum(堂食),0)+ifnull(sum(团餐),0)+ifnull(sum(外卖),0)+ifnull(sum(会议),0) as 22年餐饮收入 

FROM `财务档案` where year(时间) = 2022 

group by 酒店名称,堂食,团餐,外卖)

select 

a.酒店名称,

a.堂食,

a.团餐,

a.外卖,

c.22年餐饮收入-b.19年餐饮收入

 from  类型维度表 a/*这个类型维度表你自己有就加上,不然要用业务表来实现了*/

left join tmp1 b on a.酒店名称=b.酒店名称 and a.堂食=b.堂食 and a.团餐=b.团餐 and a.外卖=b.外卖

left join tmp2 c  on a.酒店名称=c.酒店名称 and a.堂食=c.堂食 and a.团餐=c.团餐 and a.外卖=c.外卖

  • 帆软用户A5K1Xo5JDb 帆软用户A5K1Xo5JDb(提问者) 就是现在我查询出来了 这样可以在单元格里相减 但是想法就是能不能不要在单元格里减 直接通过命令直接减得出最后的结果
    2023-04-13 16:21 
  • CD20160914 CD20160914 回复 帆软用户A5K1Xo5JDb(提问者) 参考一下上面的语句吧,不知道你是什么数据库。我用22年的收入-19年的收入的。
    2023-04-13 16:26 
  • CD20160914 CD20160914 回复 帆软用户A5K1Xo5JDb(提问者) 类型维度表这个你如果没有的话,要用业务表来了。
    2023-04-13 16:27 
最佳回答
0
congerLv6高级互助
发布于2023-4-13 16:26

做两个临时表,然后外面嵌套一层用你的逻辑

2022的数据减去2019的数据

  • 3关注人数
  • 3786浏览人数
  • 最后回答于:2023-4-13 16:26
    请选择关闭问题的原因
    确定 取消
    返回顶部