[ Foro de SQL (y MySQL) ]

Consulta CASE

01-Jun-2023 08:36
Invitado (Pau)
0 Respuestas

Buenas,

Agradecería si me pudierais ayudar a generar una linea cuando no se encuentre un valor en una columna.

Os dejo codigo.

Gracias,

DECLARE @TD_TOTAL_DIAS_INC TABLE (IDINCIDENCIA UNIQUEIDENTIFIER NULL, DIASABIERTA INT NULL, DIASNAV INT NULL, DIASTOTALINC INT NULL, USUARIO VARCHAR (50) NULL, DPTO VARCHAR (50) NULL)
DECLARE @TD_DESG_DPTO TABLE (IDINCIDENCIA UNIQUEIDENTIFIER NULL, DPTO VARCHAR (50), DIASUSUARIO INT NULL)

INSERT @TD_TOTAL_DIAS_INC(IDINCIDENCIA, DIASABIERTA, DIASNAV, DIASTOTALINC, USUARIO, DPTO)
(SELECT PROP.IDINCIDENCIA,PROP.DIASAPERTURATOTAL, PROP.DIAS_NAV_REALES,PROP.DIASPROPIEDAD, USR.NomUsuarioCompleto, USR.Departamento
FROM ssrs_incidencia_propietarios PROP
LEFT JOIN COM_TD_Usuarios USR ON PROP.USUARIOQUELATIENE = USR.NomUsuarioCompleto)

SELECT * FROM @TD_TOTAL_DIAS_INC WHERE IDINCIDENCIA  IN ('B97D6F26-CF1E-ED11-814E-00155D01A311', '1A3E7AB7-65EA-ED11-8172-00155D01A311')

INSERT INTO @TD_DESG_DPTO (IDINCIDENCIA, DPTO, DIASUSUARIO)
(SELECT IDINCIDENCIA,
CASE WHEN DPTO IN ('Ventas-AGP', 'Ventas-PMI', 'Ventas-ALC', 'Produccion-AGP', 'Produccion-PMI', 'Produccion-ALC') then 'REGION'
WHEN DPTO NOT IN ('Ventas-AGP', 'Ventas-PMI', 'Ventas-ALC', 'Produccion-AGP', 'Produccion-PMI', 'Produccion-ALC', 'DAC') then 'NOTREGION'
ELSE DPTO END,
CASE WHEN DPTO NOT IN ('Ventas-AGP', 'Ventas-PMI', 'Ventas-ALC', 'Produccion-AGP', 'Produccion-PMI', 'Produccion-ALC', 'DAC') THEN 0 ELSE ISNULL(SUM(DIASABIERTA),0) END
FROM @TD_TOTAL_DIAS_INC
GROUP BY IDINCIDENCIA, DPTO)

SELECT * FROM @TD_DESG_DPTO WHERE IDINCIDENCIA IN ('B97D6F26-CF1E-ED11-814E-00155D01A311', '1A3E7AB7-65EA-ED11-8172-00155D01A311')

Me devuelve estas dos tablas:

IDINCIDENCIA DIASABIERTA DIASNAV DIASTOTALINC USUARIO DPTO
1A3E7AB7-65EA-ED11-8172-00155D01A311 0 0 26 xxxxxxx DAC
1A3E7AB7-65EA-ED11-8172-00155D01A311 0 1 0 xxxxxxu DAC
1A3E7AB7-65EA-ED11-8172-00155D01A311 1 2 1 xxxxxxx Prod-PMI
B97D6F26-CF1E-ED11-814E-00155D01A311 0 0 0 xxxxxxx DAC
B97D6F26-CF1E-ED11-814E-00155D01A311 0 0 15 xxxxxxx DAC
B97D6F26-CF1E-ED11-814E-00155D01A311 39 27 271 xxxxxxx DAC

IDINCIDENCIA DPTO DIASUSUARIO
1A3E7AB7-65EA-ED11-8172-00155D01A311 DAC 0
1A3E7AB7-65EA-ED11-8172-00155D01A311 REGION 1
B97D6F26-CF1E-ED11-814E-00155D01A311 DAC 39

En esta segunda tabla quiero una linea con  DPTO = NOTREGION y DIASUSUARIO 0 para el ID B97D6F26-CF1E-ED11-814E-00155D01A311




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)