SQL - mostrar solo fechas que no esten en el rango

 
Vista:
sin imagen de perfil
Val: 8
Ha aumentado su posición en 2 puestos en SQL (en relación al último mes)
Gráfica de SQL

mostrar solo fechas que no esten en el rango

Publicado por JOSUE (18 intervenciones) el 03/10/2022 17:41:42
BUEN DIA
TENGO 2 TABLAS LO QUE NECESITO QUE ME MUESTRE LAS FECHAS QUE NO ESTEN DENTRO DE UN RANGO DE UNA TABLA. EJEMPLO
TABLA: FERIADOS (CAMPO: DETALLE, AÑO, INICIO, FINAL)
TABLA: BITACORA (FECHA_CITADO, ESPECIALIDAD, MEDICO, CUPOS)

SET LANGUAGE SPANISH
SELECT UPPER(FORMAT(CONVERT(DATE,FECHA_CITADO, 0), 'dd/MMMM/yyyy')) AS CITADO,
UPPER(FORMAT(CONVERT(DATE,FECHA_CITADO, 0), 'dddd')) AS DIA,
CONSULTORIO,CUPOS, COUNT(FECHA_CITADO) AS CUPO_OTORGADO FROM BITACORA B
INNER JOIN FERIADOS F ON (B.FECHA_CITADO NOT BETWEEN INICIO AND FINAL) WHERE
((ESPECIALIDAD='ENDOCRINOLOGIA ADULTO' AND MEDICO='ARNOLD REYES') AND
(UPPER(FORMAT(CONVERT(DATE,FECHA_CITADO, 0), 'dddd'))='LUNES' OR
UPPER(FORMAT(CONVERT(DATE,FECHA_CITADO, 0), 'dddd'))='MARTES' OR
UPPER(FORMAT(CONVERT(DATE,FECHA_CITADO, 0), 'dddd'))='MIERCOLES' OR
UPPER(FORMAT(CONVERT(DATE,FECHA_CITADO, 0), 'dddd'))='JUEVES' OR
UPPER(FORMAT(CONVERT(DATE,FECHA_CITADO, 0), 'dddd'))='VIERNES')) AND
(FECHA_CITADO BETWEEN FORMAT(CONVERT(DATE,GETDATE(),0),'dd/MMMM/yyyy')
AND FORMAT((SELECT MAX(FECHA_CITADO) FROM BITACORA),'dd/MMMM/yyyy'))
GROUP BY FECHA_CITADO, CONSULTORIO, CUPOS ORDER BY FECHA_CITADO

LO QUE NECESITO QUE SOLO MUESTRE LAS FECHAS QUE NO ESTEN INGRESADAS EN LA TABLA FERIADOS
FERIADOS HAY:

DETALLE..................AÑO..........INICIO..................FINAL
SEMANA SANTA.....2023.......2022-04-03..........2022-04-07

ESTE RANGO DE FECHAS NO APAREZCAN EN EL QUERY DE ARRIBA
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

mostrar solo fechas que no esten en el rango

Publicado por Isaias (1921 intervenciones) el 10/10/2022 15:28:22
¿Es SQL Server?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 8
Ha aumentado su posición en 2 puestos en SQL (en relación al último mes)
Gráfica de SQL

mostrar solo fechas que no esten en el rango

Publicado por JOSUE (18 intervenciones) el 13/10/2022 22:15:31
si estoy usando SQL server
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

mostrar solo fechas que no esten en el rango

Publicado por Isaias (1921 intervenciones) el 16/10/2022 06:11:45
Deberías crear una tabla con tus días "feriados" o de descanso obligatorio, con eso, puedes hacer ya tu query
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 10
Ha disminuido su posición en 6 puestos en SQL (en relación al último mes)
Gráfica de SQL

mostrar solo fechas que no esten en el rango

Publicado por raul (7 intervenciones) el 17/10/2022 03:06:01
No entiendo porque tantas complicaciones

Set dateformat dmy
Select * from bitácora where ( fecha_citado not in select fecha_ inicio from feriados) and (fecha_citado not in select fecha_final from feriados)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

mostrar solo fechas que no esten en el rango

Publicado por Isaias (1921 intervenciones) el 17/10/2022 15:31:24
Esta hablando de días FERIDADO o DIAS NO LABORABLES, eso con tu query, no lo puede obtener, en México se descansa obligatoriamente el 16 de Septiembre de cada año, en otros paises no lo creo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 8
Ha aumentado su posición en 2 puestos en SQL (en relación al último mes)
Gráfica de SQL

mostrar solo fechas que no esten en el rango

Publicado por JOSUE (18 intervenciones) el 24/10/2022 18:51:22
los feriados en HONDURAS son:
semana santa son 2 dias
14 abril
01 mayo
15 septiembre
03 ocubre
12 octubre
21 octubre
25 diciembre
01 enero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

mostrar solo fechas que no esten en el rango

Publicado por Isaias (1921 intervenciones) el 26/10/2022 18:10:45
Eso debe estar en una tabla para hacer la diferenciación en tu consulta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 8
Ha aumentado su posición en 2 puestos en SQL (en relación al último mes)
Gráfica de SQL

mostrar solo fechas que no esten en el rango

Publicado por JOSUE (18 intervenciones) el 11/11/2022 15:31:00
BUEN DIA ISAIAS:

ASI LO TENGO PERO DESCONOZCO PORQUE NO ME SALE:

TENGO 2 TABLAS LO QUE NECESITO QUE ME MUESTRE LAS FECHAS QUE NO ESTEN DENTRO DE UN RANGO DE UNA TABLA. EJEMPLO
TABLA: FERIADOS (CAMPO: DETALLE, AÑO, INICIO, FINAL)
TABLA: BITACORA (FECHA_CITADO, ESPECIALIDAD, MEDICO, CUPOS)

SET LANGUAGE SPANISH
SELECT UPPER(FORMAT(CONVERT(DATE,FECHA_CITADO, 0), 'dd/MMMM/yyyy')) AS CITADO,
UPPER(FORMAT(CONVERT(DATE,FECHA_CITADO, 0), 'dddd')) AS DIA,
CONSULTORIO,CUPOS, COUNT(FECHA_CITADO) AS CUPO_OTORGADO

FROM BITACORA B
INNER JOIN FERIADOS F ON (B.FECHA_CITADO NOT BETWEEN F.INICIO AND F.FINAL) "en este metodo hago la union de las tablas"

WHERE
((ESPECIALIDAD='ENDOCRINOLOGIA ADULTO' AND MEDICO='ARNOLD REYES') AND
(UPPER(FORMAT(CONVERT(DATE,FECHA_CITADO, 0), 'dddd'))='LUNES' OR
UPPER(FORMAT(CONVERT(DATE,FECHA_CITADO, 0), 'dddd'))='MARTES' OR
UPPER(FORMAT(CONVERT(DATE,FECHA_CITADO, 0), 'dddd'))='MIERCOLES' OR
UPPER(FORMAT(CONVERT(DATE,FECHA_CITADO, 0), 'dddd'))='JUEVES' OR
UPPER(FORMAT(CONVERT(DATE,FECHA_CITADO, 0), 'dddd'))='VIERNES')) AND
(FECHA_CITADO BETWEEN FORMAT(CONVERT(DATE,GETDATE(),0),'dd/MMMM/yyyy')
AND FORMAT((SELECT MAX(FECHA_CITADO) FROM BITACORA),'dd/MMMM/yyyy'))
GROUP BY FECHA_CITADO, CONSULTORIO, CUPOS ORDER BY FECHA_CITADO

LO QUE NECESITO QUE SOLO MUESTRE LAS FECHAS QUE NO ESTEN INGRESADAS EN LA TABLA FERIADOS
FERIADOS HAY:

DETALLE..................AÑO..........INICIO..................FINAL
SEMANA SANTA.....2023.......2022-04-03..........2022-04-07

ESTE RANGO DE FECHAS NO APAREZCAN EN EL QUERY DE ARRIBA
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

mostrar solo fechas que no esten en el rango

Publicado por Isaias (1921 intervenciones) el 23/11/2022 00:24:42
Para "eliminar" las fechas que NO quieres que aparezcan o SI quieres que aparezcan debes utilizar la instrucción NOT EXISTS o EXISTS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar