我有2个表Ward_Master和IP_Admission,我有以下指定的这三个查询
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
任何帮助表示感谢。
答案 0 :(得分:0)
我不太明白你的问题,但这有帮助:
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;