Sql server 2008 组合sql server 2008中的查询
我有两个表Ward_Master和IP_Acquisition,我有下面指定的这三个查询Sql server 2008 组合sql server 2008中的查询,sql-server-2008,Sql Server 2008,我有两个表Ward_Master和IP_Acquisition,我有下面指定的这三个查询 select Ward_ID ,ward_name,bed_strength from Ward_Master select * from IP_Admission where Ward_ID=1; SELECT M.Bed_Strength - COUNT(A.WARD_id) as Free_Bed FROM IP_Admission A JOIN Ward_Master M
select Ward_ID ,ward_name,bed_strength from Ward_Master
select * from IP_Admission where Ward_ID=1;
SELECT M.Bed_Strength - COUNT(A.WARD_id) as Free_Bed
FROM IP_Admission A
JOIN Ward_Master M ON A.WARD_ID = M.WARD_ID
WHERE (A.Status='V' OR A.Status='D') and M.Ward_ID=1 group by M.Bed_Strength;
这将输出为
Ward_ID Ward_Name Bed_Strengh
1 Labor 6
2 GYN 6
3 OBG 6
4 High Risk 6
5 PED 14
6 PNC 14
7 Special 11
8 Deluxe 2
9 OPT-M 8
10 OPT-F 7
IP_NO Ward_ID Status
IP001 1 V
IP002 1 O
IP003 1 D
Free_Bed
4
如您所见,这些查询的输出仅与ward_Id=1相似。我需要类似的输出
Ward_ID Ward_Name Bed_Strengh Free_Bed
1 Labor 6 4
2 GYN 6 //Free bed for ward_id=2
3 OBG 6 //Free bed for ward_id=3
4 High Risk 6 so on....
5 PED 14
6 PNC 14
7 Special 11
8 Deluxe 2
9 OPT-M 8
10 OPT-F 7
感谢您的帮助。我不太理解您的问题,但这是否有帮助:
SELECT M.Ward_ID, M.Bed_Strength - ISNULL(COUNT(A.WARD_id),0) as Free_Bed
FROM Ward_Master M
LEFT OUTER JOIN
IP_Admission A
ON A.WARD_ID = M.WARD_ID
AND (A.Status='V' OR A.Status='D')
GROUP BY M.Ward_ID, M.Bed_Strength;
如果计数为零,则会发生一个冲突,则该行不会显示。我将根据您的反馈更改我的答案