这情况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*/