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

Problema con subconsulta correlacionada

Estas en el tema de Problema con subconsulta correlacionada en el foro de Bases de Datos General en Foros del Web. Hola cuando ejecuto esta consulta en Postgresql: SELECT l.id_licitacion, c.nombre, (select (CASE WHEN Count(*)>1 THEN 'Varios' WHEN Count(*)<=1 THEN (select tf.descripcion from tipo_familia tf where ...
  #1 (permalink)  
Antiguo 05/10/2009, 08:39
 
Fecha de Ingreso: mayo-2008
Mensajes: 9
Antigüedad: 15 años, 11 meses
Puntos: 0
Problema con subconsulta correlacionada

Hola cuando ejecuto esta consulta en Postgresql:

SELECT l.id_licitacion, c.nombre,
(select (CASE WHEN Count(*)>1 THEN 'Varios'
WHEN Count(*)<=1 THEN (select tf.descripcion from tipo_familia tf where tf.id_tipo_familia = lf.id_tipo_familia)
END)
FROM licitaciones_familias lf
WHERE lf.id_licitacion = l.id_licitacion)
FROM licitaciones l
INNER JOIN clientes c ON c.id_cliente = l.id_cliente


me da el siguiente error:
subquery uses ungrouped column "lf.id_tipo_familia" from outer query

y no tengo ni idea de cómo solucionarlo, a ver si me podeis echar una mano.

Muchas gracias por todo
Saludos
Fran
  #2 (permalink)  
Antiguo 05/10/2009, 10:52
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Problema con subconsulta correlacionada

Podrías dar una explicación mas detallada de lo que buscas hacer?
La estructura de las tablas licitaciones ,tipo_familia y licitaciones_familia?

El error a simple vista dice que debes agrupar la consulta que usas la función count(*) con valores que no esten por fuera de la query principal.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 06/10/2009, 00:56
 
Fecha de Ingreso: mayo-2008
Mensajes: 9
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Problema con subconsulta correlacionada

Hola Huesos52

Te explico:
La tabla principal es licitaciones con clave primaria id_licitacion

luego tengo la tabla licitaciones_familias que hace referencia a las familias que tiene una licitación, esta tabla tiene los campos
id_licitacion_familia como clave primaria
id_licitacion coma clave ajena de la tabla licitaciones, hace referencia a qué licitación pertenece esta familia.
id_tipo_familia como clave ajena de la tabla tipo_familia para saber el tipo de familia.

y por último la tabla tipo_familia dónde guardo los tipos de familia con su correspondiente descripción:
id_tipo_familia clave primaria
descripcion descripción del tipo de familia

Y lo que yo quiero hacer es mostrar una tabla con todas las licitaciones, y un campo en el que si la licitación tiene varias familias ponga "varios" y si solo tiene una familia muestre la descripción de la misma.


Espero haber aclarado un poco más lo que quiero.

Gracias por contestar
Fran
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 05:36.