Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

[SOLUCIONADO] Consulta entre fechas

Estas en el tema de Consulta entre fechas en el foro de SQL Server en Foros del Web. Estimados amigos tengo una consulta muy importante ojala puedan ayudarme quiero hacer una consulta entre fechas pues tengo separadas el año y el periodo y ...
  #1 (permalink)  
Antiguo 07/10/2014, 09:47
 
Fecha de Ingreso: enero-2012
Mensajes: 158
Antigüedad: 12 años, 3 meses
Puntos: 1
Información Consulta entre fechas

Estimados amigos tengo una consulta muy importante ojala puedan ayudarme quiero hacer una consulta entre fechas pues tengo separadas el año y el periodo
y necesito sacar una consulta desde hasta tal como aparece aqui en el ajemplo

(ANO>='2013' AND MES >='07') AND (ANO<='2014' AND A.MES <= '08')

pero no me esta funcionando arroja una informacion solo del mes 07 y 08
este es mi codigo

Código SQL:
Ver original
  1. SELECT B.COD_TRABAJADOR,B.COD_CONCEPASIST,A.ANO,A.MES,A.SEMANA,B.CANTIDAD AS HORAS
  2. FROM RH_PLANILLA_MENSUAL_CABECERA A, RH_REGISTRO_HORAS B  
  3. WHERE A.TIP_PLANILLA='E' AND A.COD_CLASE_PLANILLA='01' AND A.FLG_STATUS_PLANILLA='L' AND
  4.       (A.ANO>='2013' AND A.MES >='07') AND (A.ANO<='2014' AND A.MES <= '08') AND      
  5.       A.TIP_PLANILLA=B.TIP_PLANILLA AND A.NUM_CORRE_PLANILLA=B.NUM_CORRE_PLANILLA AND B.COD_CONCEPASIST IN ('AS01','HE01','HE02','HE03')
  6. ORDER BY B.COD_TRABAJADOR,A.ANO,A.MES,A.SEMANA,B.COD_CONCEPASIST

favor ayúdenme
  #2 (permalink)  
Antiguo 07/10/2014, 09:56
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta entre fechas

Código SQL:
Ver original
  1. SELECT B.COD_TRABAJADOR,B.COD_CONCEPASIST,A.ANO,A.MES,A.SEMANA,B.CANTIDAD AS HORAS
  2. FROM RH_PLANILLA_MENSUAL_CABECERA A, RH_REGISTRO_HORAS B  
  3. WHERE A.TIP_PLANILLA='E' AND A.COD_CLASE_PLANILLA='01' AND A.FLG_STATUS_PLANILLA='L' AND
  4.       ((A.ANO>='2013' AND A.MES >='07') OR (A.ANO<='2014' AND A.MES <= '08')) AND      
  5.       A.TIP_PLANILLA=B.TIP_PLANILLA AND A.NUM_CORRE_PLANILLA=B.NUM_CORRE_PLANILLA AND B.COD_CONCEPASIST IN ('AS01','HE01','HE02','HE03')
  6. ORDER BY B.COD_TRABAJADOR,A.ANO,A.MES,A.SEMANA,B.COD_CONCEPASIST

tienes un and en la comparacion de fechas y no puedes tener una fecha que sea 2013 07 y 2014 08 se entiende???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 07/10/2014, 10:00
 
Fecha de Ingreso: enero-2012
Mensajes: 158
Antigüedad: 12 años, 3 meses
Puntos: 1
Información Respuesta: Consulta entre fechas

tienes razón pero solamente se guardo el año y periodo
es decir ano y mes
y la consulta que de desea hacer es desde 2013 07 hasta el 2014 08
  #4 (permalink)  
Antiguo 07/10/2014, 10:03
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta entre fechas

En un solo query asi como lo quieres no va a salir porque se cruzan los meses en el formato que los tienes tendrias que hacer:


Código SQL:
Ver original
  1. SELECT * FROM(
  2. SELECT B.COD_TRABAJADOR,B.COD_CONCEPASIST,A.ANO,A.MES,A.SEMANA,B.CANTIDAD AS HORAS
  3. FROM RH_PLANILLA_MENSUAL_CABECERA A, RH_REGISTRO_HORAS B  
  4. WHERE A.TIP_PLANILLA='E' AND A.COD_CLASE_PLANILLA='01' AND A.FLG_STATUS_PLANILLA='L' AND
  5.      ((A.ANO>='2013' AND A.MES >='07'))
  6. AND      
  7.       A.TIP_PLANILLA=B.TIP_PLANILLA AND A.NUM_CORRE_PLANILLA=B.NUM_CORRE_PLANILLA AND B.COD_CONCEPASIST IN ('AS01','HE01','HE02','HE03')
  8. UNION
  9. SELECT B.COD_TRABAJADOR,B.COD_CONCEPASIST,A.ANO,A.MES,A.SEMANA,B.CANTIDAD AS HORAS
  10. FROM RH_PLANILLA_MENSUAL_CABECERA A, RH_REGISTRO_HORAS B  
  11. WHERE A.TIP_PLANILLA='E' AND A.COD_CLASE_PLANILLA='01' AND A.FLG_STATUS_PLANILLA='L' AND
  12.      ((A.ANO>='2014' AND A.MES >='08'))
  13. AND      
  14.       A.TIP_PLANILLA=B.TIP_PLANILLA AND A.NUM_CORRE_PLANILLA=B.NUM_CORRE_PLANILLA AND B.COD_CONCEPASIST IN ('AS01','HE01','HE02','HE03')
  15. )
  16. ORDER BY COD_TRABAJADOR,ANO,MES,SEMANA,COD_CONCEPASIST
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 07/10/2014, 10:11
 
Fecha de Ingreso: enero-2012
Mensajes: 158
Antigüedad: 12 años, 3 meses
Puntos: 1
Información Respuesta: Consulta entre fechas

Gracias amigo
tal como esta tu query pero me arroja informacion desde 2011
  #6 (permalink)  
Antiguo 07/10/2014, 10:14
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta entre fechas

algo esta mal en tus datos, porque los filtros son que sea mayor a igual a 2013 y que el mes sea mayor igual a 7 y para 2014 es igual solo que el mes cambia, revisa tu informacion
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 07/10/2014, 10:17
 
Fecha de Ingreso: enero-2012
Mensajes: 158
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: Consulta entre fechas

EN TU QUERY libra SALE UN ERROR Mens. 156, Nivel 15, Estado 1, Línea 13
Sintaxis incorrecta cerca de la palabra clave 'ORDER'.
  #8 (permalink)  
Antiguo 07/10/2014, 10:18
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta entre fechas

Código SQL:
Ver original
  1. SELECT * FROM(
  2. SELECT B.COD_TRABAJADOR,B.COD_CONCEPASIST,A.ANO,A.MES,A.SEMANA,B.CANTIDAD AS HORAS
  3. FROM RH_PLANILLA_MENSUAL_CABECERA A, RH_REGISTRO_HORAS B  
  4. WHERE A.TIP_PLANILLA='E' AND A.COD_CLASE_PLANILLA='01' AND A.FLG_STATUS_PLANILLA='L' AND
  5.      ((A.ANO>='2013' AND A.MES >='07'))
  6. AND      
  7.       A.TIP_PLANILLA=B.TIP_PLANILLA AND A.NUM_CORRE_PLANILLA=B.NUM_CORRE_PLANILLA AND B.COD_CONCEPASIST IN ('AS01','HE01','HE02','HE03')
  8. UNION
  9. SELECT B.COD_TRABAJADOR,B.COD_CONCEPASIST,A.ANO,A.MES,A.SEMANA,B.CANTIDAD AS HORAS
  10. FROM RH_PLANILLA_MENSUAL_CABECERA A, RH_REGISTRO_HORAS B  
  11. WHERE A.TIP_PLANILLA='E' AND A.COD_CLASE_PLANILLA='01' AND A.FLG_STATUS_PLANILLA='L' AND
  12.      ((A.ANO>='2014' AND A.MES >='08'))
  13. AND      
  14.       A.TIP_PLANILLA=B.TIP_PLANILLA AND A.NUM_CORRE_PLANILLA=B.NUM_CORRE_PLANILLA AND B.COD_CONCEPASIST IN ('AS01','HE01','HE02','HE03')
  15. )
  16. AS t1 ORDER BY COD_TRABAJADOR,ANO,MES,SEMANA,COD_CONCEPASIST

Prueba con este :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #9 (permalink)  
Antiguo 07/10/2014, 10:26
 
Fecha de Ingreso: enero-2012
Mensajes: 158
Antigüedad: 12 años, 3 meses
Puntos: 1
Información Respuesta: Consulta entre fechas

gRACIAS YA LO HICE
ESTE SERIA EL CODIGO
Código SQL:
Ver original
  1. SELECT B.COD_TRABAJADOR,B.COD_CONCEPASIST,A.ANO,A.MES,A.SEMANA,B.CANTIDAD AS HORAS
  2. FROM RH_PLANILLA_MENSUAL_CABECERA A, RH_REGISTRO_HORAS B  
  3. WHERE A.TIP_PLANILLA='E' AND A.COD_CLASE_PLANILLA='01' AND A.FLG_STATUS_PLANILLA='L'
  4. AND A.ANO+A.MES>='201207'
  5. AND A.ANO+A.MES<='201408'
  6. AND  A.TIP_PLANILLA=B.TIP_PLANILLA AND A.NUM_CORRE_PLANILLA=B.NUM_CORRE_PLANILLA AND B.COD_CONCEPASIST IN ('AS01','HE01','HE02','HE03') AND B.Cod_Trabajador='0165'
  7. ORDER BY B.COD_TRABAJADOR,A.ANO,A.MES,A.SEMANA,B.COD_CONCEPASIST

Etiquetas: select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:12.