Uhmmm, usar todo esos Count es una locura, pero si es necesario.
¿porque ya que usas un laso no cuenta tu mismo sumando en una variable? > Saludos a todos los amigos de la comunidad. > > Les escribo porque tengo un problema y no logro encontrar una buena forma > de > resolverlo. Tengo una función para obtener reportes estadísticos donde > debo > retornar el nombre de las unidades organizativas, los nombres de los tipos > de servicios y los totales, de la siguiente forma: > > > Unidad > > Tipo de servicio > > T1 > > T2 > > T3 > > T4 > > > > > > > > > > > > > > > > > El problema es que entre la tabla de unidades organizativas y tipos de > servicio no hay relación directa, sino a través de otras tablas del > negocio. > Necesito tirar todas las unidades contra todos los tipos de servicio. > > La solución que he dado hasta el momento es con un ciclo for recorrer la > tabla tipo de servicio e ir calculando los totales e irlos insertando en > una > tabla temporal para al final devolver los valores, donde evidentemente > esto > provoca problemas de rendimiento, el código es el siguiente(cortado para > no > abrumar): > > > > for aid_elemento,adescripcion from vw_nmtipo_servicio order by > tipo_servicio > loop > > SQLText = 'INSERT INTO estadistico SELECT id, nombre, > > (SELECT COUNT(distinct > vw_registro_expediente_incidencia.id) FROM > vw_registro_expediente_incidencia > WHERE ...) AS t1, > > (SELECT COUNT(distinct > vw_registro_expediente_incidencia.id) FROM > vw_registro_expediente_incidencia > ...) AS t2, > > (SELECT COUNT(distinct > vw_registro_expediente_incidencia.id) FROM > vw_registro_expediente_incidencia > ...) AS t3, > > (SELECT COUNT(distinct > vw_registro_expediente_incidencia.id) FROM > vw_registro_expediente_incidencia > ...) AS t4 > > > '''||adescripcion_elemento||'''::character varying as criterio1 FROM > nmunidad_org WHERE (nmunidad_org.id IN ('||alista_id_nivel||'))'; > > execute SQLText; > > SQLText = ''; > > end loop; > > > > Espero que me puedan dar alguna recomendación para optimizar el diseño. > > Saludos, > > M.Sc. Esneiker Enriquez Cabrera > Esp. B en Ciencias Informáticas > > Desoft en Ciego de Ávila. Joaquín de Aguero esq. Calle 2. Ciego de Ávila. > Cuba. > Telf.: 53 33 22 8971, email.: <mailto:eenriq...@cav.desoft.cu> > eenriq...@cav.desoft.cu > > > > --- > This message was processed by Kaspersky Mail Gateway 5.6.28/RELEASE > running at host imx2.etecsa.cu > Visit our web-site: <http://www.kaspersky.com>, <http://www.viruslist.com> > Saludos, Gilberto Castillo ETECSA, La Habana, Cuba
--- This message was processed by Kaspersky Mail Gateway 5.6.28/RELEASE running at host imx3.etecsa.cu Visit our web-site: <http://www.kaspersky.com>, <http://www.viruslist.com>
- Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripción: http://www.postgresql.org/mailpref/pgsql-es-ayuda