Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Bases de datos > Firebird e Interbase
Register FAQ Members List Calendar Guía de estilo Today's Posts

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 20/01/2005
VRO VRO is offline
Miembro
 
Join Date: Apr 2004
Posts: 230
Poder: 23
VRO Va por buen camino
Problema Consulta con fecha

HOla ,vereis tengo una tabla que es Lecturas(numerocontador,fecha,lectura,consumo con estos campos aqui nombrados) y lo que quiero es que me muestre los contadores, la fecha, el consumo y la lectura de todos los contadores que tengan lectura en una fecha dada y si hay contadores que no tiene lectura en esa fecha saco la inmediatamente anterior a esa fecha.

No se si me he explicado bien, yo he hecho esta consulta, pero claro me saca los datos para esa fecha y para todas las anteriores.

Código Delphi [-]
Query.Close;
Query.SQL.Text:='select numerocontador,fecha,lectura,consumo from lecturas where fecha<='+QuotedStr(fechamask.text)+' group by numerocontador,fecha,lectura,consumo order by fecha desc';
Query.open;

El motor de la base da datos es Firebird 1.5

Gracias de antemano, es una consulta muy importante.
Reply With Quote
  #2  
Old 20/01/2005
athlontado athlontado is offline
Miembro
 
Join Date: Sep 2004
Location: Almázcara - León (España)
Posts: 63
Poder: 23
athlontado Va por buen camino
Prueba con esto:

Código Delphi [-]
   Query.Close;
   Query.SQL.Text := 'select numerocontador, fecha, lectura, consumo ' +
    'from lecturas where (fecha = (select first 1 fecha from lecturas where fecha <= ' +
    QuotedStr(fechamask.text) + ' order by fecha desc)) group by ' +
    'numerocontador, fecha, lectura, consumo order by fecha desc';
   Query.open;

Con esto, obtienes la lectura de contadores de la fecha dada ó de la inmediatamente última lectura anterior a la indicada.

Saludos
__________________
Óscar Salvador Páez
Aprendiendo a aprehender de quienes aprehenden, sin cerciorarse de sus edades, culturas, sexos, razas, creencias u orígenes, es la forma más sabia de aprehender.

Last edited by athlontado : 20/01/2005 at 12:39.
Reply With Quote
  #3  
Old 20/01/2005
VRO VRO is offline
Miembro
 
Join Date: Apr 2004
Posts: 230
Poder: 23
VRO Va por buen camino
Gracias Athlontado

¿Se te ocurre como hacer en vez de el inmediatamente inferior el que más se aproxime ya puede ser por arriba ó por abajo?, por cierto, la respuesta anterior sólo me saca los contadores de igual fecha si hay contadores que no tiene esa fecha no coje la fecha inmediatamente inferior.


Pero de todas formas muchiisiiiimas gracias por tu aportación.Seguiré investigando , espero que con tu ayuda.

Gracias.
Reply With Quote
  #4  
Old 20/01/2005
athlontado athlontado is offline
Miembro
 
Join Date: Sep 2004
Location: Almázcara - León (España)
Posts: 63
Poder: 23
athlontado Va por buen camino
En este caso, si quieres hallar la fecha más cercana a la que tú das, lo mejor es crear un procedimiento almacenado que te devuelva la fecha más próxima a la dada y usar ese procedimiento dentro del select que estamos intentando hacer, devolviéndote de esta forma aquellos contadores de la fecha más próxima.
__________________
Óscar Salvador Páez
Aprendiendo a aprehender de quienes aprehenden, sin cerciorarse de sus edades, culturas, sexos, razas, creencias u orígenes, es la forma más sabia de aprehender.
Reply With Quote
  #5  
Old 21/01/2005
VRO VRO is offline
Miembro
 
Join Date: Apr 2004
Posts: 230
Poder: 23
VRO Va por buen camino
Wink Gracias Athlontado

Gracias por tu respuesta athlontado, verás estoy estudiando que es un procedimiento alamcenado, como hacerlo etc..., ya que nunca he utilizado uno.

¿Serí mucha molestia ponerme un ejeplillo de como quedaría?.

Eternamente agradecida.
Reply With Quote
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT +2. The time now is 12:35.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi