Estimado Felipe es recomendable que la disgregación de cuentas lo haga en el proceso de "mayorización" y en el caso de tu balance con un simple sql tendrías lo que necesitas (mucho mas rápido para presentar resultados al usuario)
saludos! 2014-10-07 9:38 GMT-05:00 Emanuel Calvo <[email protected]>: > > El 07/10/14 a las 10:55, Felipe Araoz Ramos escibió: > > > > Buen dia amigos del foro. > > > > Tengo una funcion que hace varios agrupaciones para un balance de > > comprobacion, una para los saldos iniciales, para los movimientos, etc > > y los voy uniendo con union all. Mi problema radica cuando quiero > > agrupar por un campo extrayendo los 2,3 o 4, digitos iniciales de la > > cuenta, segun el parametro $4. He estado haciendo esto: > > > > SELECT > > substring(fpcdet.m_ccta,1,$4) as m_ccta, > > SUM(CASE WHEN fpcdet.M_ACCI='D' THEN fpcdet.M_IMPN ELSE 0.00 END) AS > > SI_DEBE, > > SUM(CASE WHEN fpcdet.M_ACCI='H' THEN fpcdet.M_IMPN ELSE 0.00 END) AS > > SI_HABE, > > 0.00 AS MV_DEBE,0.00 AS MV_HABE,0.00 AS SA_DEBE,0.00 AS SA_HABE > > FROM > > fpcdet inner join fpccab on > > fpcdet.m_empr=fpccab.m_empr and > > fpcdet.m_anop=fpccab.m_anop and > > fpcdet.m_mesp=fpccab.m_mesp and > > fpcdet.m_grup=fpccab.m_grup and > > fpcdet.m_ncom=fpccab.m_ncom > > where fpcdet.m_empr=$1 and fpcdet.M_anop=$2 and fpcdet.M_MESP<$3 and > > fpccab.m_cont='S' > > GROUP BY fpcdet.m_ccta Con esto no me funciona bien, > > pero si le coloco > > GROUP BY 1 , me funciona bien, pero no se si es lo mas correcto O > > seria mas conveniente; > > GROUP BY substring(fpcdet.m_ccta,1,$4). > > > > No soy amigo de utilizar funciones que se ejecuten por cada fila. > Yo dejaría el GROUP BY m_ccta . Aún así te aconsejo que hagas el > EXPLAIN ANALYZE de cada consulta y analices el comportamiento con > tus datos. > > Si vas a compartir los explain usa: explain.depesz.com > > -- > -- > Emanuel Calvo http://www.2ndQuadrant.com/ > PostgreSQL Development, 24x7 Support, Training & Services > > > - > Enviado a la lista de correo pgsql-es-ayuda ([email protected] > ) > Para cambiar tu suscripción: > http://www.postgresql.org/mailpref/pgsql-es-ayuda > -- Felix Gonzales
