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

求SQL,跪求!该怎么处理

2013-12-13 
求SQL,跪求!表1WARD_NOPRO_NOEVA_LEVEL评价人次1020630A731020630B4表2 PRO_NOPRO_NAMEEVA_LEVELLEVEL_NAM

求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
*/

热点排行