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)
预期结果:
尝试使用以下查询:
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)