> 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).
>
> Gracias por sus respuestas.

¿Has probado utilizar además un Order by?


Saludos,
Gilberto Castillo
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 ([email protected])
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a