将多个选择查询合并为一个查询

Jer*_*emy 2 sql t-sql sql-server

我需要将多个选择语句分为一个查询和多个列

我已经尝试过使用UNION,但这会导致我的选择项之一丢失(可能是滥用了)

SELECT COUNT(*) AS EMERGENCIA FROM Incidentes WHERE Prioridad_Real = 'Emergencia' AND Estado = 'Resuelto a Tiempo'
AND Fecha_Asigna >= '2013-08-22 13:30:00.000' and Fecha_Resul <= '2013-08-23 11:16:00.000'

SELECT COUNT(*) AS ALTA FROM Incidentes WHERE Prioridad_Real = 'Alta' AND Estado = 'Resuelto a Tiempo' 
AND Fecha_Asigna >= '2013-08-22 13:30:00.000' and Fecha_Resul <= '2013-08-23 11:16:00.000'

SELECT COUNT(*) AS MEDIA FROM Incidentes WHERE Prioridad_Real = 'Media' AND Estado = 'Resuelto a Tiempo'
AND Fecha_Asigna >= '2013-08-22 13:30:00.000' and Fecha_Resul <= '2013-08-23 11:16:00.000'

SELECT COUNT(*) AS BAJA FROM Incidentes WHERE Prioridad_Real = 'Baja' AND Estado = 'Resuelto a Tiempo'
AND Fecha_Asigna >= '2013-08-22 13:30:00.000' and Fecha_Resul <= '2013-08-23 11:16:00.000'

Run Code Online (Sandbox Code Playgroud)

预期结果:

预期结果

Had*_*adi 6

尝试使用以下查询:

SELECT SUM(CASE WHEN Prioridad_Real = 'Emergencia' THEN 1 ELSE 0 END) as EMERGENCIA,
       SUM(CASE WHEN Prioridad_Real = 'Alta' THEN 1 ELSE 0 END) as ALTA,
       SUM(CASE WHEN Prioridad_Real = 'Media' THEN 1 ELSE 0 END) as MEDIA,
       SUM(CASE WHEN Prioridad_Real = 'Baja' THEN 1 ELSE 0 END) as BAJA
FROM   Incidentes WHERE  Estado = 'Resuelto a Tiempo' 
AND Fecha_Asigna >= '2013-08-22 13:30:00.000' and Fecha_Resul <= '2013-08-23 11:16:00.000'  
Run Code Online (Sandbox Code Playgroud)