Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 组合sql server 2008中的查询_Sql Server 2008 - Fatal编程技术网

Sql server 2008 组合sql server 2008中的查询

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

我有两个表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 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;

如果计数为零,则会发生一个冲突,则该行不会显示。我将根据您的反馈更改我的答案