Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Consulta con if (https://www.clubdelphi.com/foros/showthread.php?t=14873)

VRO 04-10-2004 09:30:48

Consulta con if
 
Hola, tengo delphi 6 con interbase, he hecho una consulta con if y me da error, ¿NO se puede utilizar condicionales en una consulta para interbase?, mi consulta es la siguiente:

Código Delphi [-]
query.close;
query.sql.text:='select contadores.numero,nombre,poblacion,patron as patron1,le.lectura,sum(le.consumo) as consum,le.fecha,l.fecha as fechao';
  datos.listdep.sql.Text:=datos.listdep.SQL.Text+'if(l.fecha<>'''+fechaant+''',0,l.lectura) as lecturaant,if(le.fecha<>'''+fechasig+''',0,le.lectura) as le.lectura from contadores, lecturas le, lecturas l where contadores.numero=le.numero and contadores.numero=l.numero and depende='+cont;

query.SQL.Text:=datos.listdep.SQL.Text+'and (l.fecha='''+fechaant+''' or le.fecha='''+fechasig+''') ';

query.sql.text:=datos.listdep.sql.Text+'group by contadores.numero,nombre,poblacion,patron,le.lectura,le.fecha,l.lectura,l.fecha order by contadores.numero,6 desc';

query.open;

Si no se puede hacer consultas con condicionales prodría haber un similar, lo que yo pretendo en mi consulta es que me aparexcan todos los contadores que tiene lecturas en esas 2 fechas, pero puede que una de esas 2 fechas sea 0 entonces la lectura tb es 0

Ayuda , por favor

Muchas gracias

guillotmarc 04-10-2004 12:13:40

Hola.

En efecto, no se pueden usar condiciones en Interbase.

Quizá te interese cambiar a Firebird, el cual en la versión 1.5 permite construcciones CASE en las sentencias, que te permiten lo que buscas. (Consulta las Release Notes de Firebird 1.5 para ver su sintaxis).

Saludos.

Chaja 05-10-2004 04:22:06

Consulta con if.....
 
Probaste con hacer la consulta en un Store y luego desde la aplicación cliente traes los regsitris con un select * from Nombre del Store.
En el Store si podes usar if...


La franja horaria es GMT +2. Ahora son las 22:52:53.

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