求SQL,跪求!
表1
WARD_NOPRO_NOEVA_LEVEL评价人次
10206 30 A 73
10206 30 B 4
表2
PRO_NOPRO_NAME EVA_LEVELLEVEL_NAME
30 您目前身体恢复情况如何?A 很好
30 您目前身体恢复情况如何?B 一般
30 您目前身体恢复情况如何?C 不好
需要得到的表为:
WARD_NOPRO_NOEVA_LEVEL评价人次
10206 30 A 73
10206 30 B 4
10206 30 C 0
[解决办法]
纠正一下:
create table #tb1(WARD_NO int,PRO_NO int,EVA_LEVEL char(1),评价人次 int)
insert into #tb1
select 10206,30,'A',73
union all select 10206,30,'B',4
create table #tb2(PRO_NO int,PRO_NAME varchar(100),EVA_LEVEL char(1),LEVEL_NAME varchar(10))
insert into #tb2
select 30,'您目前身体恢复情况如何?','A','很好'
union all select 30,'您目前身体恢复情况如何?','B','一般'
union all select 30,'您目前身体恢复情况如何?','C','不好'
select isnull(b.WARD_NO,c.WARD_NO) as WARD_NO,a.PRO_NO,a.EVA_LEVEL,ISNULL(b.评价人次,0) as 评价人次
from #tb2 a
left join #tb1 b on a.PRO_NO=b.PRO_NO and a.EVA_LEVEL=b.EVA_LEVEL
left join (select distinct WARD_NO,PRO_NO from #tb1)c on a.PRO_NO=c.PRO_NO
/*
WARD_NOPRO_NOEVA_LEVEL评价人次
---------------------------------------
1020630A73
1020630B4
1020630C0
*/