Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Consulta que obtiene campos de una tabla u otra según condición

Estas en el tema de Consulta que obtiene campos de una tabla u otra según condición en el foro de Bases de Datos General en Foros del Web. Hola a todos!!! Buscando una respuesta en Google, di con esta página que desconocía hasta el momento y me ha parecido interesante... Verán, mi problema ...
  #1 (permalink)  
Antiguo 16/08/2007, 05:14
 
Fecha de Ingreso: agosto-2007
Mensajes: 1
Antigüedad: 17 años, 3 meses
Puntos: 0
Consulta que obtiene campos de una tabla u otra según condición

Hola a todos!!!

Buscando una respuesta en Google, di con esta página que desconocía hasta el momento y me ha parecido interesante...

Verán, mi problema es con una consulta SQL, tengo dos tablas relacionadas entre sí:

Código:
A              B
********       ********
A_CODIGO       B_CODIGO
A_CANTIDAD     A_CODIGO
A_BORRADO      B_CANTIDAD_REAL
               B_BORRADO
El tema es el siguiente: la cantidad real de un ítem de la tabla A es la sumatoria de los registros B_CANTIDAD_REAL relacionados. Ahora bien, si no hay ningún registro en la tabla B relacionado con la tabla A, el valor que vale (aunque no sea el real, sino un estimado) es el de A_CANTIDAD.

Así, si quisieramos hacer un resumen del tipo:

Código:
CODIGO CANTIDAD
****** ********
000001 236
000002 568
000003 1236
en ocasiones la cantidad la tomaría de A_CANTIDAD, y en otras de la sumatoria de B_CANTIDAD_REAL.

He aquí la pregunta: ¿Cómo puedo, mediante una consulta SQL, hacer que me traiga dicha información?

He intentado varias soluciones pero no me resulta ninguna... por ejemplo:

1.- Debido a que utilizo Interbase 6 no dispongo de la cláusula CASE...

2.- He probado con un UNION ALL, así:

Código:
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
Si bien ambas consultas me funcionan por separado, al unirlas me da el error de "tipo de dato desconocido". Los campos a_cantidad y b_cantidad_real son de tipo Integer, pero imagino que al hacer la sumatoria y agrupamiento, algo pasa que no puedo hacer la unión.

Agradezco de antemano, cualquier ayuda que me puedan dar con la consulta...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:51.