MySQL拼接表

外连接两表按照年份统计五年的建材费和业务费,并将统计的五年的表横向拼接

代码:

select a.year,a.jccost,a.ywcost,b.year,b.jccost,b.ywcost,c.year,c.jccost,c.ywcost,d.year,d.jccost,d.ywcost,e.year,e.jccost,e.ywcost
from (
select CONCAT(2021,'年') year,
SUM(IF(b.name='建材部',a.mount,0.00)) as jccost,
SUM(IF(b.name='业务部',a.mount,0.00)) as ywcost
FROM a 
LEFT JOIN b on a.custom4=b.ordercode
WHERE YEAR(a.date)=2021
)a
LEFT JOIN(
SELECT CONCAT(2021-1,'年') year,
SUM(IF(b.name='建材部',a.mount,0.00)) as jccost,
SUM(IF(b.name='业务部',a.amount,0.00)) as ywcost
FROM a 
LEFT JOIN b on a.custom4=b.ordercode
WHERE YEAR(a.date)=2021-1
)b
on 1=1
LEFT JOIN(
SELECT CONCAT(2021-2,'年') year,
SUM(IF(b.name='建材部',a.mount,0.00)) as jccost,
SUM(IF(b.name='业务部',a.mount,0.00)) as ywcost
FROM a 
LEFT JOIN b on a.custom4=b.ordercode
WHERE YEAR(a.date)=2021-2
)c
on 1=1
LEFT JOIN(
SELECT CONCAT(2021-3,'年') year,
SUM(IF(b.name='建材部',a.mount,0.00)) as jccost,
SUM(IF(b.name='业务部',a.mount,0.00)) as ywcost
FROM a 
LEFT JOIN b on a.custom4=b.ordercode
WHERE YEAR(a.date)=2021-3
)d
on 1=1
LEFT JOIN(
SELECT CONCAT(2021-4,'年') year,
SUM(IF(b.name='建材部',a.mount,0.00)) as jccost,
SUM(IF(b.name='业务部',a.mount,0.00)) as ywcost
FROM a 
LEFT JOIN b on a.custom4=b.ordercode
WHERE YEAR(a.date)=2021-4
)e
on 1=1

结果:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值