sql的多表合并问题
有三张表如下:
表A 表B 表C
月份 产品 数量A 月份 产品 数量B 月份 产品 数量C
1 a 2 1 a 1 1 a 1
1 b 2 1 b 2 3 a 1
1 c 3 1 c 3
2 a 2 2 a 2
2 c 3 2 b 3
3 b 5 2 c 3
3 c 6
现在将其合并为一张表D如下:其中数量D为数量A-数量B-数量C
表D
月份 产品 数量A 数量B 数量C 数量D
1 a 2 1 1 0
1 b 2 2 0
1 c 3 3 0
2 a 2 2 0
2 b 3 -3
2 c 3 3 0
3 a 1 -1
3 b 5 5
3 c 6 6
请问用SQL语句如何来实现?谢谢了!
[解决办法]
用左连接,手头没有环境,随手写的,你试试看有什么问题没
select a.月份, a.产品, a.数量A,b.数量B ,c.数量C,( a.数量A-b.数量B-c.数量C) as 数量D from 表A a
left join
( select 月份 产品 数量B from 表B) b
on a.月份=b.月份 and a.产品=b产品
left join
( select 月份 产品 数量C from 表C) c
on a.月份=c.月份 and a.产品=c.产品
[解决办法]
同意楼上
[解决办法]
select a.月份, a.产品, a.数量A,b.数量B ,b.数量B2,c.数量C,( a.数量A-b.数量B-c.数量C) as 数量D,(a.数量A-b.数量B2) as 数量D2 from 表A a
left join
( select 月份 产品 数量B,数量B2 from 表B) b
on a.月份=b.月份 and a.产品=b产品
left join
( select 月份 产品 数量C from 表C) c
on a.月份=c.月份 and a.产品=c.产品