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.


*Felipe Araoz Ramos*
RPM #941990605 / 941990605
RPC 992760385
 NXT  822*9500 / 998229500

Reply via email to