我有两组查询,如下所示我需要根据下面指定的某些情况合并查询。合并查询
SELECT M.Ward_ID ,
M.Ward_Name ,
M.Bed_Strength ,
M.Bed_Strength - ISNULL(COUNT(A.WARD_id), 0) AS Free_Bed ,
ISNULL(COUNT(A.Status), 0) AS TBV
FROM Ward_Master M
LEFT OUTER JOIN IP_Admission A ON A.WARD_ID = M.WARD_ID
AND (A.Status = 'O')
OR A.Status IN (SELECT CONVERT(VARCHAR(1), COUNT(A.Status)) AS TBV
FROM Ward_Master w ,
IP_Admission a
WHERE a.Status = 'D'
AND a.Ward_ID = w.Ward_ID)
GROUP BY M.Ward_ID ,
M.Bed_Strength ,
M.Ward_Name ,
A.Status
输出是像
Ward_ID Ward_Name Bed_Strength Free_Bed TBV
1 Labor 6 4 2
2 GYN 6 5 1
3 OBG 6 6 0
4 High Ri 6 4 2
5 PED 14 14 0
2)
SELECT ward_ID ,
COUNT(status)
FROM IP_Admission
WHERE Status = 'D'
GROUP BY Ward_ID
输出:
ward_ID (No column name)
2 1
3 1
5 2
现在我需要的第一个表被转换为
Ward_ID Ward_Name Bed_Strength Free_Bed TBV
1 Labor 6 4 0
2 GYN 6 5 1
3 OBG 6 6 1
4 High Ri 6 4 0
5 PED 14 14 2
你可以看到,病房ID 2,3,5有1,1,2有D
状态的总数。并且如果任何Ward_ID不包含status count
它应该显示0
。任何帮助赞赏。
它是一个非常好的解释,它帮助了我很多 –