首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

sql的多表合并有关问题

2012-03-14 
sql的多表合并问题有三张表如下:表A表B表C月份产品数量A月份产品数量B月份产品数量C1a21a11a11b21b23a11c3

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.产品

热点排行