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

Consulta sobre fecha mayor de entre varios registros

Estas en el tema de Consulta sobre fecha mayor de entre varios registros en el foro de SQL Server en Foros del Web. Buenos dias, tengo el siguiente problema y no logro resolver como hacer: tengo una tabla con la figuiente informacion: ID_CLIENTE----------FOLIO_SIN_CONTRATO---------FECHA_SIG_MANTTO 14------------------------1---------------------------07/09/2011 14------------------------1---------------------------08/09/2011 14------------------------1---------------------------09/09/2011 14------------------------2---------------------------12/09/2011 14------------------------2---------------------------13/09/2011 ...
  #1 (permalink)  
Antiguo 09/09/2011, 09:31
 
Fecha de Ingreso: mayo-2009
Mensajes: 242
Antigüedad: 15 años
Puntos: 2
Pregunta Consulta sobre fecha mayor de entre varios registros

Buenos dias, tengo el siguiente problema y no logro resolver como hacer:

tengo una tabla con la figuiente informacion:

ID_CLIENTE----------FOLIO_SIN_CONTRATO---------FECHA_SIG_MANTTO
14------------------------1---------------------------07/09/2011
14------------------------1---------------------------08/09/2011
14------------------------1---------------------------09/09/2011
14------------------------2---------------------------12/09/2011
14------------------------2---------------------------13/09/2011
15------------------------5---------------------------20/10/2011
15------------------------5---------------------------03/11/2011
16------------------------7---------------------------06/11/2011

De esa tabla deseo obtener la fecha mas alta de cada uno de los folios esto es del folio 1 obtener 09/09/2011 del folio 2 obtener 13/09/2011 y asi sucesivamente, como es que puedo lograr eso, y ademas otra consulta que tampoco he podido lograr hacer es la siguiente:

tengo esta tabla:

ID_CLIENTE----------FOLIO_CONTRATO----------FECHA_SIG_MANTTO
14------------------------3------------------------07/09/2011
14------------------------3------------------------08/09/2011
14------------------------3------------------------09/09/2011
14------------------------6------------------------12/09/2011
14------------------------6------------------------13/09/2011
15------------------------9------------------------20/10/2011
15------------------------9------------------------03/11/2011
16-----------------------12------------------------06/11/2011

De esta tabla deseo obtener la fecha mas alta de cada uno de los folio pero que esten proximos a vencer, esto quiere decir que esten a 7 dias o menos y a mas de -1 dia tomando como referencia la fecha del dia actual, de esta tabla deberia obtener del folio 3 la fecha 09/09/2011, del folio 6 la fecha 13/09/2011 y nadamas porque el folio 9 y 12 pasan de los 7 dias.

Espero me puedan ayudar he estado dandole vueltas a estas consultas y no logro obtener un resultado satisfactorio. De antemano gracias
  #2 (permalink)  
Antiguo 09/09/2011, 09:36
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Consulta sobre fecha mayor de entre varios registros

Se entiende que es lo que desea, ¿que avance lleva de su query?
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 09/09/2011, 09:41
 
Fecha de Ingreso: mayo-2009
Mensajes: 242
Antigüedad: 15 años
Puntos: 2
Pregunta Respuesta: Consulta sobre fecha mayor de entre varios registros

Cita:
Iniciado por iislas Ver Mensaje
Se entiende que es lo que desea, ¿que avance lleva de su query?
Hola muchas gracias por contestar, de la primer tabla no he hecho nada porque hasta ahorita me sugio esa situacion, de la segunda tabla ya lo he hecho pero creo ke de una manera ke no me convence mucho, lo hice con varias consultas:

primero obtuve todos los folios de contrato:

"Select folio_contrato from contratos order by folio_contrato desc"

despues por cada uno de los contratos obtuve las fecha mas alta:

"Select MAX(fecha_sig_mant) as FechaM from servicios where folio_contrato = @folioContrato"

y por ultimo consulte que la fecha tubiera el rango 7 dias o menos:

"Select id_cliente,folio_servicio,folio_contrato,fecha_sig _mant,fecha from servicios where datediff(day,@feachActual,fecha_sig_mant) <= 7 and datediff(day,@feachActual,fecha_sig_mant) >= 0 and cancelado <> 1 and folio_contrato = @folioC and fecha_sig_mant = @fechMantto"


Y lo que quiero saber es si se puede hacer todo eso en una sola consulta.
  #4 (permalink)  
Antiguo 09/09/2011, 09:41
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
Respuesta: Consulta sobre fecha mayor de entre varios registros

Una pregunta cual es tu llave primaria en esa tabla?
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #5 (permalink)  
Antiguo 09/09/2011, 09:42
 
Fecha de Ingreso: mayo-2009
Mensajes: 242
Antigüedad: 15 años
Puntos: 2
Pregunta Respuesta: Consulta sobre fecha mayor de entre varios registros

Cita:
Iniciado por GeoAvila Ver Mensaje
Una pregunta cual es tu llave primaria en esa tabla?
Hola gracias por contestar, la llave primaria no la puse pero se llama ID_SERVICIO
  #6 (permalink)  
Antiguo 09/09/2011, 09:52
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
Respuesta: Consulta sobre fecha mayor de entre varios registros

Cita:
Iniciado por kriss8725 Ver Mensaje
Hola gracias por contestar, la llave primaria no la puse pero se llama ID_SERVICIO
Podes hacer el ejemplo con la llave primaria tambien.?

Nos Vemos.
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #7 (permalink)  
Antiguo 09/09/2011, 10:16
 
Fecha de Ingreso: mayo-2009
Mensajes: 242
Antigüedad: 15 años
Puntos: 2
Pregunta Respuesta: Consulta sobre fecha mayor de entre varios registros

Cita:
Iniciado por GeoAvila Ver Mensaje
Podes hacer el ejemplo con la llave primaria tambien.?

Nos Vemos.
No entendi lo que me quiciste decir, me podrias dar un ejemplo por favor.
  #8 (permalink)  
Antiguo 09/09/2011, 10:21
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
Respuesta: Consulta sobre fecha mayor de entre varios registros

Cita:
Iniciado por kriss8725 Ver Mensaje
No entendi lo que me quiciste decir, me podrias dar un ejemplo por favor.
Coloca de nuevo tu ejemplo de la tabla(incluyendo la llave primaria) como lo hiciste en el primer post.

Nos Vemos.
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #9 (permalink)  
Antiguo 09/09/2011, 10:38
 
Fecha de Ingreso: mayo-2009
Mensajes: 242
Antigüedad: 15 años
Puntos: 2
Respuesta: Consulta sobre fecha mayor de entre varios registros

Cita:
Iniciado por GeoAvila Ver Mensaje
Coloca de nuevo tu ejemplo de la tabla(incluyendo la llave primaria) como lo hiciste en el primer post.

Nos Vemos.
tengo una tabla con la figuiente informacion:

ID_SERVICIO----------ID_CLIENTE----------FOLIO_SIN_CONTRATO---------FECHA_SIG_MANTTO
1------------------------14------------------------1---------------------------07/09/2011
2------------------------14------------------------1---------------------------08/09/2011
3------------------------14------------------------1---------------------------09/09/2011
4------------------------14------------------------2---------------------------12/09/2011
5------------------------14------------------------2---------------------------13/09/2011
6------------------------15------------------------5---------------------------20/10/2011
7------------------------15------------------------5---------------------------03/11/2011
8------------------------16------------------------7---------------------------06/11/2011

De esa tabla deseo obtener la fecha mas alta de cada uno de los folios esto es del folio 1 obtener 09/09/2011 del folio 2 obtener 13/09/2011 y asi sucesivamente, como es que puedo lograr eso, y ademas otra consulta que tampoco he podido lograr hacer es la siguiente:

tengo esta tabla:

ID_SERVICIO----------ID_CLIENTE----------FOLIO_CONTRATO----------FECHA_SIG_MANTTO
1------------------------14------------------------3------------------------07/09/2011
2------------------------14------------------------3------------------------08/09/2011
3------------------------14------------------------3------------------------09/09/2011
4------------------------14------------------------6------------------------12/09/2011
5------------------------14------------------------6------------------------13/09/2011
6------------------------15------------------------9------------------------20/10/2011
7------------------------15------------------------9------------------------03/11/2011
8------------------------16-----------------------12------------------------06/11/2011

De esta tabla deseo obtener la fecha mas alta de cada uno de los folio pero que esten proximos a vencer, esto quiere decir que esten a 7 dias o menos y a mas de -1 dia tomando como referencia la fecha del dia actual, de esta tabla deberia obtener del folio 3 la fecha 09/09/2011, del folio 6 la fecha 13/09/2011 y nadamas porque el folio 9 y 12 pasan de los 7 dias.
  #10 (permalink)  
Antiguo 09/09/2011, 11:33
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
Respuesta: Consulta sobre fecha mayor de entre varios registros

Bueno lo ha he depurado la hice en el notepad++(me corrigen si algo anda mal)

Código SQL:
Ver original
  1. SELECT id_servicio,id_cliente,folio_contrato,fecha_sig_mantto
  2. FROM latabla lt
  3. WHERE id_servicio IN (
  4. SELECT top 1 id_servicio FROM latabla lt1
  5. WHERE lt1.id_cliente = lt.id_cliente AND lt1.folio_contrato = lt.folio_contrato
  6. ORDER BY fecha_sig_mantto DESC
  7. ) AND
  8. DATEDIFF(dd,fecha_sig_mantto, GETDATE()) > 7

Nos Vemos.
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #11 (permalink)  
Antiguo 09/09/2011, 15:42
 
Fecha de Ingreso: mayo-2009
Mensajes: 242
Antigüedad: 15 años
Puntos: 2
Respuesta: Consulta sobre fecha mayor de entre varios registros

Cita:
Iniciado por GeoAvila Ver Mensaje
Bueno lo ha he depurado la hice en el notepad++(me corrigen si algo anda mal)

Código SQL:
Ver original
  1. SELECT id_servicio,id_cliente,folio_contrato,fecha_sig_mantto
  2. FROM latabla lt
  3. WHERE id_servicio IN (
  4. SELECT top 1 id_servicio FROM latabla lt1
  5. WHERE lt1.id_cliente = lt.id_cliente AND lt1.folio_contrato = lt.folio_contrato
  6. ORDER BY fecha_sig_mantto DESC
  7. ) AND
  8. DATEDIFF(dd,fecha_sig_mantto, GETDATE()) > 7

Nos Vemos.

Oye aplique tu consulta pero no se si la sintaxis en firebird sea diferente porque me genera error.
  #12 (permalink)  
Antiguo 09/09/2011, 16:17
 
Fecha de Ingreso: mayo-2009
Mensajes: 242
Antigüedad: 15 años
Puntos: 2
Pregunta Respuesta: Consulta sobre fecha mayor de entre varios registros

Bueno ya he logrado acomodar la consulta, aqui esta por si a alguien le llegara a servir.

Código SQL:
Ver original
  1. SELECT id_cliente,folio_servicio,folio_contrato,fecha_sig_mant,fecha FROM servicios
  2. WHERE fecha_sig_mant IN (SELECT MAX(fecha_sig_mant)
  3. FROM servicios GROUP BY folio_contrato) AND
  4. datediff(DAY,@feachActual,fecha_sig_mant) <= 7 AND
  5.  datediff(DAY,@feachActual,fecha_sig_mant) >= 0
  6. AND cancelado <> 1 ORDER BY fecha_sig_mant ASC

Gracias a todos los que se tomaron la molestia de contestar. Saludos
  #13 (permalink)  
Antiguo 10/09/2011, 21:08
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
Respuesta: Consulta sobre fecha mayor de entre varios registros

Cita:
Iniciado por kriss8725 Ver Mensaje
Bueno ya he logrado acomodar la consulta, aqui esta por si a alguien le llegara a servir.

Código SQL:
Ver original
  1. SELECT id_cliente,folio_servicio,folio_contrato,fecha_sig_mant,fecha FROM servicios
  2. WHERE fecha_sig_mant IN (SELECT MAX(fecha_sig_mant)
  3. FROM servicios GROUP BY folio_contrato) AND
  4. datediff(DAY,@feachActual,fecha_sig_mant) <= 7 AND
  5.  datediff(DAY,@feachActual,fecha_sig_mant) >= 0
  6. AND cancelado <> 1 ORDER BY fecha_sig_mant ASC

Gracias a todos los que se tomaron la molestia de contestar. Saludos
ehh si pense que la estabas trabajando en SQL Server jajaja pero bueno Saludos.
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #14 (permalink)  
Antiguo 12/09/2011, 09:22
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Consulta sobre fecha mayor de entre varios registros

Esto es un ejemplo de porque se debe PEDIR LA VERSION-EDICION de su SQL Server, al final, resulta ser que estamos ayudando a alguien que no cuenta con SQL Server, si no es algun otro motor de base de datos.
__________________
MCTS Isaias Islas
  #15 (permalink)  
Antiguo 12/09/2011, 11:28
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
Respuesta: Consulta sobre fecha mayor de entre varios registros

Cita:
Iniciado por iislas Ver Mensaje
Esto es un ejemplo de porque se debe PEDIR LA VERSION-EDICION de su SQL Server, al final, resulta ser que estamos ayudando a alguien que no cuenta con SQL Server, si no es algun otro motor de base de datos.
Justamente...
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila

Etiquetas: fecha, mayor, registros, tabla
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 18:02.