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)
-   -   una consulta case ? (https://www.clubdelphi.com/foros/showthread.php?t=9583)

Jorge Taveras 27-04-2004 16:03:53

una consulta case ?
 
Buenas tengan... tenia un par de meses que no me conectaba y tuve que ingresar de nuevo....gracias por la bienvenida.
Tengo un problema tratando de hacer un sum(case ....) . realmente no me sale.
La estructura que uso la he probado en sql server, pero en interbase no me funciona. A ver que estoy haciendo mal.
el sql es el siguiente:
select m.prod,
a.descripcion,
a.grupo,
h.status,
m.venta,
m.falta,
sum(case h.status when =
'1' then m.Venta else 0 end) as Valoruno,
sum(case h.status when =
'3' then m.Venta else 0 end) as Valortres,
sum(case h.status when =
'9' then m.Venta else 0 end) as Valornueve,
sum(e.cant) as entradas
from movimarts m
join articulos a on a.Clave = m.Prod
join entradas e on (e.prod = m.prod)
join movims h on (h.cheque = m.clave)
where m.fecha between
'09-01-2003' and '09-30-2003'
group by m.prod,a.descripcion,a.grupo, h.status
order by a.grupo, a.descripcion,m.prod

...si les quito los sum(case..., me funciona, pero necesito agrupar los valores seguin el h.status (char(1)). el error que me da en el sql editor es el siguiente:
ERROR: Dynamic SQL Error SQL error code = -104 Token unknown - line 7, char 18 h
Gracias de antemano
jorge

jachguate 27-04-2004 16:51:47

la sintaxis del case es:

case when h.status = 1 then m.Venta else 0) as ValorUno -- sin end!

Hasta luego.

;)

guillotmarc 27-04-2004 17:30:47

Hola.

El end es correcto, el problema es que la única variante de Interbase que soporta la construcción case, es Firebird 1.5.

Saludos.

Jorge Taveras 27-04-2004 18:53:27

Una consulta case ( ...
 
Gracias a Juan Antonio cantillo.., tu ayuda fue oportuna..., sin embargo probé
y no me funcionó. Al parecer tiene que ver con lo que dice Guillot Marc puesto que lo he hecho en sql y me funciona correctamente...De ser como establece GuillotMarc, quisiera darle algunos datos y el me dé algunas sugerencias ( o alguien más que pueda aportar).. Trabajo con marathon 1.5 y mi base de datos es interbase 5.5 ( Un instalador gratis que bajé hace muchos meses y me ha dado resultado).... Que tengo que hacer entonces ? Que es Firebirt ? ... Mas concreto, supongo que firebirt es una base de datos que mejora interbase o algo así. Como migro mis base de datos de interbase 5.5 a firebirts para poder utilizar las tecnicas case, entre otras ventajas... Donde puede conseguir suficiente información sobre firebirts. ?
Con afecto, jorge

guillotmarc 27-04-2004 19:39:01

Hola.

Firebird es un proyecto Open Source, que se originó a partir de Interbase 6.0, cuando Borland decidió evolucionar Interbase como un proyecto Open Source. Borland cambió de idea, y las siguientes versiones de Interbase (la 6.5 y la 7) han vuelto a ser comerciales (de pago). Aunque Firebird ha cogido el código liberado en su dia por Borland, y ha hecho su propia evolución (gratuita) de Interbase. http://firebird.sourceforge.net

Saludos.

guillotmarc 27-04-2004 19:42:58

Para migrar la base de datos, tienes que hacer un backup de tu base de datos Interbase 5.5, después desinstalas Interbase, instalas Firebird 1.5, y restauras el Backup.

Normalmente tu aplicación debería funcionar sin ningún cambio.

Para trabajar con la base de datos, te recomiendo IB-Expert en lugar de Marathon. Hay una versión gratuita de IB-Expert.

http://www.hksoftware.net/download/i...4.1.1_full.exe

Saludos.

jachguate 27-04-2004 21:53:21

:o :o ups... siento no haberlo explicado antes. Al ver una pregunta con una clausula case, que es soportada solamente por firebird 1.5, supuse que se trataba de esta versión del motor. Veo que ya te han orientado en este aspecto. Te recomiendo usarlo.

Hasta luego.

;)


La franja horaria es GMT +2. Ahora son las 18:00:13.

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