Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-01-2005
VRO VRO is offline
Miembro
 
Registrado: abr 2004
Posts: 230
Poder: 21
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.
Responder Con Cita
  #2  
Antiguo 20-01-2005
athlontado athlontado is offline
Miembro
 
Registrado: sep 2004
Ubicación: Almázcara - León (España)
Posts: 63
Poder: 20
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.

Última edición por athlontado fecha: 20-01-2005 a las 12:39:34.
Responder Con Cita
  #3  
Antiguo 20-01-2005
VRO VRO is offline
Miembro
 
Registrado: abr 2004
Posts: 230
Poder: 21
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.
Responder Con Cita
  #4  
Antiguo 20-01-2005
athlontado athlontado is offline
Miembro
 
Registrado: sep 2004
Ubicación: Almázcara - León (España)
Posts: 63
Poder: 20
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.
Responder Con Cita
  #5  
Antiguo 21-01-2005
VRO VRO is offline
Miembro
 
Registrado: abr 2004
Posts: 230
Poder: 21
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.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 22:16:49.


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