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

这情况2个table要怎么JOIN

2012-09-16 
这情况2个table要如何JOIN?TABLE A 存水果 名 量苹果 5草莓 4香蕉 6凤梨 2TABLE B 存谁拿了水果人  名 量

这情况2个table要如何JOIN?
TABLE A 存水果
 名 量
苹果 5
草莓 4
香蕉 6
凤梨 2

TABLE B 存谁拿了水果
人  名 量
甲 苹果 2
乙 香蕉 1
丙 草莓 3
丁 香蕉 5

请问要如何显示成(水果还有剩就留空白栏位)
 名 人 量
苹果 甲 2
苹果   3
草莓 丙 3
草莓   1
香蕉 乙 1
香蕉 丁 5
凤梨   2

先谢谢大大们的回答

[解决办法]

SQL code
declare @A table(名 nvarchar(2),量 int)insert into @Aselect N'苹果',5 union allselect N'草莓',4 union allselect N'香蕉',6 union allselect N'凤梨',2declare @B table(人 nvarchar(2),名 nvarchar(2),量 int)insert into @Bselect N'甲',N'苹果',2 union allselect N'乙',N'香蕉',1 union allselect N'丙',N'草莓',3 union allselect N'丁',N'香蕉',5;with cte as(    select 名,sum(量) 量 from    (        select 名,量 from @A        union all        select 名,-sum(量) from @B group by 名    )t    group by 名)select * from(    select * from @B    union all    select N'余',* from cte    where cte.量<>0) torder by charindex(','+名+',',N',苹果,草莓,香蕉,凤梨,'),charindex(','+人+',',N',甲,丙,乙,丁,余,')/*人    名    量---- ---- -----------甲    苹果   2余    苹果   3丙    草莓   3余    草莓   1乙    香蕉   1丁    香蕉   5余    凤梨   2*/ 

热点排行