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

[SOLUCIONADO] Consulta registros últimos 12 meses en oracle

Estas en el tema de Consulta registros últimos 12 meses en oracle en el foro de Oracle en Foros del Web. Hola a todos; Tengo unos registros que tienen: un # de contrato , una fecha en este formato (03/03/2017 21:01:15) y unidades de consumo. requiero ...
  #1 (permalink)  
Antiguo 21/03/2017, 12:43
Avatar de mager3  
Fecha de Ingreso: junio-2012
Ubicación: Medellin
Mensajes: 318
Antigüedad: 11 años, 10 meses
Puntos: 4
Información Consulta registros últimos 12 meses en oracle

Hola a todos;

Tengo unos registros que tienen:
un # de contrato ,
una fecha en este formato (03/03/2017 21:01:15)
y unidades de consumo.


requiero conocer cuales son las unidades de consumo de los últimos 12 meses por cada contrato, como puedo hacer para realizar dicha consulta?

adicionalmente me gustaria obtener los resultados asi:

# contrato, mes 12, mes 11, mes 10 , mes 9, mes 8 , mes 7 ......

Me pueden orientar por favor

el motor es Oracle
  #2 (permalink)  
Antiguo 21/03/2017, 13:27
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Consulta registros últimos 12 meses en oracle

Código SQL:
Ver original
  1. WHERE campo_fecha BETWEEN (SYSDATE-365) AND SYSDATE;
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 21/03/2017, 14:52
Avatar de mager3  
Fecha de Ingreso: junio-2012
Ubicación: Medellin
Mensajes: 318
Antigüedad: 11 años, 10 meses
Puntos: 4
Información Respuesta: Consulta registros últimos 12 meses en oracle

huesos gracias me funciono correctamente, ultima pregunta asociada al tema, yo quisera hacer un count y saber cuantas veces consecutivas a partir del sysdate hacia atras ha habido unidades de consumo en cero,

es decir,

contrato 1 unidades 0 marzo
contrato 1 unidades 0 febrero
contrato 1 unidades 0 enero
contrato 1 unidades 8 diciembre

count debería de dar 3 porque de la fecha de hoy hacia atrás se han presentado consecutivamente 3 unidades de consumo en cero.

como podría ?

Última edición por mager3; 21/03/2017 a las 15:01
  #4 (permalink)  
Antiguo 21/03/2017, 15:58
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Consulta registros últimos 12 meses en oracle

Creo que esto te podría funcionar

Código SQL:
Ver original
  1. COUNT(CASE WHEN unidades = 0 THEN 1 ELSE 0 END)
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 22/03/2017, 05:33
Avatar de mager3  
Fecha de Ingreso: junio-2012
Ubicación: Medellin
Mensajes: 318
Antigüedad: 11 años, 10 meses
Puntos: 4
Respuesta: Consulta registros últimos 12 meses en oracle

no me funciono, me da el total de registros sin importar si las unidades estan en cero o no.
  #6 (permalink)  
Antiguo 22/03/2017, 07:00
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Consulta registros últimos 12 meses en oracle

Cierto.

Trata de cambiar el count por SUM.

Código SQL:
Ver original
  1. SUM(CASE WHEN unidades = 0 THEN 1 ELSE 0 END)

En teoría debe funcionar
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 27/03/2017, 06:52
Avatar de mager3  
Fecha de Ingreso: junio-2012
Ubicación: Medellin
Mensajes: 318
Antigüedad: 11 años, 10 meses
Puntos: 4
Respuesta: Consulta registros últimos 12 meses en oracle

Muchas Gracias..
  #8 (permalink)  
Antiguo 07/04/2017, 14:11
Avatar de mager3  
Fecha de Ingreso: junio-2012
Ubicación: Medellin
Mensajes: 318
Antigüedad: 11 años, 10 meses
Puntos: 4
Respuesta: Consulta registros últimos 12 meses en oracle

solucionado asi

Código SQL:
Ver original
  1. SELECT SUM(CASE WHEN unidades= 8 THEN 1 ELSE 0 END) FROM tabla WHERE contrato=1x2x2228 AND fechaunidades BETWEEN  add_months(SYSDATE, -6) AND SYSDATE;

Etiquetas: Ninguno
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 07:51.