From: | felix gonzales <jfgonzales(at)gmail(dot)com> |
---|---|
To: | Emanuel Calvo <emanuel(dot)calvo(at)2ndquadrant(dot)com> |
Cc: | PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Consulta sobre groupo by |
Date: | 2014-10-07 15:16:39 |
Message-ID: | CA+u4V5RoojDooGpo_qCeNtQ5dhZB2b74-SiCNZo2NPw4ngY=RQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
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 <emanuel(dot)calvo(at)2ndquadrant(dot)com>:
>
> 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 (pgsql-es-ayuda(at)postgresql(dot)org
> )
> Para cambiar tu suscripción:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda
>
--
Felix Gonzales
From | Date | Subject | |
---|---|---|---|
Next Message | Linder Poclaba Lazaro | 2014-10-07 15:19:27 | Re: fecha de un registro en una tabla |
Previous Message | Emanuel Calvo | 2014-10-07 15:09:12 | Re: fecha de un registro en una tabla |