Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/09/2009, 12:38
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: consulta entre dos tablas pero que retorne los datos en el mismo registro

Requieres algo parecido a la función group_concat de mysql.
Lastimosamente postgresql no la trae, pero según este articulo se puede construir.

Código sql:
Ver original
  1. CREATE aggregate array_accum (
  2. sfunc = array_append,
  3. basetype = anyelement,
  4. stype = anyarray,
  5. initcond = '{}'
  6. );
  7.  
  8. CREATE OR REPLACE FUNCTION _group_concat(text, text)
  9. RETURNS text AS $$
  10. SELECT CASE
  11. WHEN $2 IS NULL THEN $1
  12. WHEN $1 IS NULL THEN $2
  13. ELSE $1 operator(pg_catalog.||) ',' operator(pg_catalog.||) $2
  14. END
  15. $$ IMMUTABLE LANGUAGE SQL;
  16.  
  17. CREATE AGGREGATE group_concat (
  18. BASETYPE = text,
  19. SFUNC = _group_concat,
  20. STYPE = text
  21. );

Después de creada, puedes llamar así tu consulta:

Código sql:
Ver original
  1. SELECT descripcion,group_concat(acabado) AS acabados
  2. FROM producto p
  3. INNER JOIN
  4. acabados_producto ap
  5. ON p.id=ap.id GROUP BY descripcion;

ya la he probado y relamente funciona.

cuentanos si soluciona tu problema
__________________
Without data, You are another person with an opinion.
W. Edwads Deming