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 27-04-2004
Jorge Taveras Jorge Taveras is offline
Miembro
 
Registrado: abr 2004
Ubicación: Santo Domingo
Posts: 68
Poder: 21
Jorge Taveras Va por buen camino
Talking 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
Responder Con Cita
  #2  
Antiguo 27-04-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cool

la sintaxis del case es:

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

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 27-04-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
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.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #4  
Antiguo 27-04-2004
Jorge Taveras Jorge Taveras is offline
Miembro
 
Registrado: abr 2004
Ubicación: Santo Domingo
Posts: 68
Poder: 21
Jorge Taveras Va por buen camino
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
Responder Con Cita
  #5  
Antiguo 27-04-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
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.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #6  
Antiguo 27-04-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
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.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #7  
Antiguo 27-04-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cool

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.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
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 04:32: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
Copyright 1996-2007 Club Delphi