mysql如果是8.0的话。是支持with语句,,不然的话。你得写多个子查询,分别计算出19与22年数据。再子查询
select
a.酒店名称,
a.堂食,
a.团餐,
a.外卖,
c.22年餐饮收入-b.19年餐饮收入
from 类型维度表 a/*这个类型维度表你自己有就加上,不然要用业务表来实现了*/
left join (
SELECT
酒店名称,
堂食,
团餐,
外卖,
ifnull(sum(堂食),0)+ifnull(sum(团餐),0)+ifnull(sum(外卖),0)+ifnull(sum(会议),0) as 19年餐饮收入
FROM `财务档案` where year(时间) = 2019
group by 酒店名称,堂食,团餐,外卖) b on a.酒店名称=b.酒店名称 and a.堂食=b.堂食 and a.团餐=b.团餐 and a.外卖=b.外卖
left join (SELECT
酒店名称,
堂食,
团餐,
外卖,
ifnull(sum(堂食),0)+ifnull(sum(团餐),0)+ifnull(sum(外卖),0)+ifnull(sum(会议),0) as 22年餐饮收入
FROM `财务档案` where year(时间) = 2022
group by 酒店名称,堂食,团餐,外卖) c on a.酒店名称=c.酒店名称 and a.堂食=c.堂食 and a.团餐=c.团餐 and a.外卖=c.外卖