求SQL语句!

表1
WARD_NO PRO_NO EVA_LEVEL 评价人次
10206 30 A 73
10206 30 B 4
表2
PRO_NO PRO_NAME EVA_LEVEL LEVEL_NAME
30 您目前身体恢复情况如何? A 很好
30 您目前身体恢复情况如何? B 一般
30 您目前身体恢复情况如何? C 不好

需要得到的表为:
WARD_NO PRO_NO EVA_LEVEL 评价人次
10206 30 A 73
10206 30 B 4
10206 30 C 0

按我的理解,pro_no应该是问题的编码,ward_no应该是这个问题归属哪个模块的模块编码,
当你统计某一模块下某一问题的答案时,可以给ward_no一个默认值为模块编码.
或者在 表2 中加上ward_no.
个人理解。
SELECT coalesce(b.ward_no,'10206')
,a.pro_no
,a.eva_level
,coalesce(b.pj_cnt,0) AS pj_cnt
FROM 表2 a
LEFT JOIN 表1 b
ON a.pro_no = b.pro_no
AND a.eva_level = b.eva_level
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-12-13
----假设下面的表是 tableb 上面的表是tablea  sql server 的写法

select  b.ward_no,b.pro_no,b. b.ward_no,a.评价人次
from tableb b(nolock)
    left join tablea a (nolock)on b.ward_no=a.ward_no

第2个回答  2013-12-13
select
      a.WARD_NO
    , b.PRO_NO
    , b.EVA_LEVEL
    , isnull(a.评价人次,0) as 评价人次
from (select PRO_NO, EVA_LEVEL from 表2) as b
left join 表1 as a on a.PRO_NO=b.PRO_NO

第3个回答  2013-12-13
select B1.WARD_NO
,B2.PRO_NO
,B2.EVA_LEVEL
,ISNULL(B1.PINGJIARENCI,0)
 FROM B2
LEFT JOIN B1
ON B1.PRO_NO = B2.PRO_NO

第4个回答  2013-12-13
select nvl(b1.WARD_NO,'1026'),b2.PRO_NO,b2.EVA_LEVEL,nvl(b1.评价人次,0) from 表2 b2 left join 表1 b1 on b2.EVA_LEVEL=b1.EVA_LEVEL

第5个回答  2013-12-13
相似回答