Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-08-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 24
ArdiIIa Va por buen camino
No conozco las posibilidades de Interbase 6, pero con Firebird 2 y sus extensiones, lo tendrías resuelto fácilmente.
Por ejemplo con COALESCE
Cita:
Function:
Allow a column value to be calculated by a number of expressions,
the first expression returning a non NULL value is returned as the
column value
Yo habitualmente, si no tengo claro como armar un query, recurro a un Stored Procedure y soluciono el problema.
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #2  
Antiguo 14-08-2007
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 23
gluglu Va por buen camino
Yo utilizo Interbase 7.5 y no tengo problemas con 'Case'. La verdad es que desconozco si la función está implementada en Interbase 6.

COALESCE también está implementada en Interbase 7.5
__________________
Piensa siempre en positivo !
Responder Con Cita
  #3  
Antiguo 14-08-2007
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 684
Poder: 20
Gabo Va por buen camino
Sólo que por ahora no tengo contemplado hacer ningún cambio...

¿Podrían decirme si la sintaxis de esta consulta es correcta?

Código SQL [-]
select cliente_codigo,
case when cliente_borrado=0 then cliente_poblacion
else cliente_provincia
end
from cliente

Es que a mi me falla ("token unknown") y si está correcta, simplemente es que no existe en la versión 6 de Interbase...

Gracias
Responder Con Cita
  #4  
Antiguo 14-08-2007
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 23
gluglu Va por buen camino
Siempre y cuando Cliente_Provincia y Cliente_Poblacion sean del mismo tipo, es correcta.

Ya he probado otra parecida con una de mis tablas en Interbase 7.5 y sin problema alguno.
__________________
Piensa siempre en positivo !
Responder Con Cita
  #5  
Antiguo 14-08-2007
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 684
Poder: 20
Gabo Va por buen camino
Sí, son del mismo tipo... Por lo que veo el tema es que no está disponible en la versión 6 de Interbase...

Gracias gluglu por hacer la comprobación...

Seguiré intentando por que tiene que haber alguna otra manera de hacerlo...
Responder Con Cita
  #6  
Antiguo 16-08-2007
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 684
Poder: 20
Gabo Va por buen camino
Sigo haciendo pruebas... he intentado volver a la idea original...

Como les mencionaba, esta consulta...

Código SQL [-]
select a_codigo, a_cantidad from a 
where a_borrado=0 and a_codigo not in
(select a_codigo from b where b_borrado=0)
union all
select a_codigo, sum (b_cantidad_real) as suma from b
where b_borrado=0 group by a_codigo

... me da el error de tipo de dato desconocido:

Código:
Dynamic SQL Error
SQL error code = -104
Invalid command
Data type unknown
Ambas consultas me funcionan bien por separado y no entiendo bien el error, ya que los tipos de datos (tanto de a_cantidad, como de b_cantidad_real) son iguales, Integer en ambos casos. ¿A qué se puede deber el error?
Responder Con Cita
  #7  
Antiguo 17-08-2007
hach hach is offline
Miembro
 
Registrado: mar 2007
Ubicación: Bariloche, Argentina
Posts: 44
Poder: 0
hach Va por buen camino
Thumbs up prueba con esta consulta, deberia funcionar

Código SQL [-]
select a_codigo, sum(a_cantidad) from a
where a_borrado=0 and a_codigo not in
(select a_codigo from b where b_borrado=0)
group by a_codigo
union
select a_codigo, sum (b_cantidad_real) from b
where b_borrado=0
group by a_codigo

Espero te sirva!!!

Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
copiar campos de una tabla a otra en paradox Camilo Varios 18 27-06-2007 21:51:26
actualizar datos de una tabla según datos de otra. GustavoCruz SQL 10 01-06-2007 23:18:44
Actualizar una tabla con una consulta de otra tabla JODELSA SQL 2 14-09-2006 04:07:01
Cambiar de color una fila de un Dbgrid segun una condicion... hook Varios 5 12-07-2005 23:40:36
Cosultar datos de una tabla y copiar la consulta en otra JODELSA SQL 2 30-05-2005 21:53:30


La franja horaria es GMT +2. Ahora son las 06:19:19.


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