Ver Mensaje Individual
  #17 (permalink)  
Antiguo 10/08/2010, 12:29
Avatar de death_nemesis
death_nemesis
 
Fecha de Ingreso: abril-2009
Ubicación: Santiago - Chile
Mensajes: 147
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: return select

gracias huesos52 me fue de gran ayuda tu orientacion...y en gratitud posteo el codigo completo y depurado por si a alguien lo puede necesitar

Código SQL:
Ver original
  1. CREATE OR REPLACE FUNCTION prueba(idTaller INTEGER, aliasCompania text,OUT VehiculosTaller BIGINT,OUT CapacidadTaller SMALLINT) RETURNS SETOF RECORD AS $BODY$
  2. DECLARE
  3.     use_sql TEXT;
  4. BEGIN  
  5. use_sql := 'select count(VEHICULOS.id_vehiculo)as VehiculosTaller,locales.capacidad_instalada as CapacidadTaller from SINIESTROS,COMPANIAS,VEHICULOS,LOCALES,TALLERES
  6. where SINIESTROS.id_compania = COMPANIAS.id_compania and SINIESTROS.id_vehiculo = VEHICULOS.id_vehiculo and VEHICULOS.id_estado <> 12 and
  7. VEHICULOS.id_local   = LOCALES.id_local and LOCALES.id_taller = TALLERES.id_taller and TALLERES.id_taller = '||idTaller||' and
  8. COMPANIAS.alias = upper('''||aliasCompania||''') group by locales.capacidad_instalada UNION ALL
  9. select count(VEHICULOS.id_vehiculo),locales.capacidad_instalada from SINIESTROS,COMPANIAS,VEHICULOS,LOCALES,TALLERES
  10. where SINIESTROS.id_compania = COMPANIAS.id_compania and SINIESTROS.id_vehiculo = VEHICULOS.id_vehiculo and VEHICULOS.id_estado <> 12 and
  11. VEHICULOS.id_local = LOCALES.id_local and LOCALES.id_taller = TALLERES.id_taller and TALLERES.id_taller = '||idTaller||' and COMPANIAS.alias <> upper('''||aliasCompania||''')
  12. group by locales.capacidad_instalada';
  13. --raise notice 'Running query: %', use_sql;
  14. RETURN QUERY EXECUTE use_sql;  
  15. END;
  16. $BODY$
  17. LANGUAGE plpgsql;
  18.  
  19. SELECT * FROM prueba (6,'xxx');