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

求个SQL,多谢

2012-03-12 
求个SQL,谢谢A表字段1字段2A1aaaA2bbbB表字段1字段2字段3A1测试11000A2测试2500想得出的结果A1测试11000A2

求个SQL,谢谢
A表
字段1 字段2
A1 aaa
A2 bbb

B表
字段1 字段2 字段3
A1 测试1 1000
A2 测试2 500


想得出的结果

A1 测试1 1000
A2 测试2 0  
A1 测试2 0  
A2 测试2 500

[解决办法]

SQL code
declare @A表 table (字段1 varchar(2),字段2 varchar(3))insert into @A表select 'A1','aaa' union allselect 'A2','bbb'declare @B表 table (字段1 varchar(2),字段2 varchar(5),字段3 int)insert into @B表select 'A1','测试1',1000 union allselect 'A2','测试2',500--是不是这个意思?select a.字段1,b.字段2,case when a.字段2='aaa' then 字段3 else 0 end as 字段3from @A表 a cross join @B表 b/*字段1  字段2   字段3---- ----- -----------A1   测试1   1000A2   测试1   0A1   测试2   500A2   测试2   0*/
[解决办法]
SQL code
select b.字段1, b.字段2, (case b.字段1 when 'A1' then b.字段3  else 0)  from b left join a where a.字段1=b.字段1unionselect b.字段1, b.字段2, (case b.字段1 when 'A2' then b.字段3  else 0)  from b left join a where a.字段1=b.字段1
[解决办法]
应该是2楼说的
[解决办法]
2楼结果也不对,能把查询条件说一下吗

热点排行