求个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
[解决办法]
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*/
[解决办法]
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楼结果也不对,能把查询条件说一下吗