lo decis por la resta? perdon, no la habia visto! :( , deberias hacer: sum(asidet.asideb) - sum(asidet.asihab) as saldo
On Tue, Feb 10, 2009 at 11:26 AM, Fernandos Siguenza <fs...@hotmail.com>wrote: > Correcto gracias por responder, lo que necesito es tengo la tabla asidet, > y asicab, y quiero sacar por mes cual es el saldo de cada cuenta contable, > algo asi > mes, cuenta,debe,haber,saldo,grupo > 1 1 13 3 10 A > 1 2 14 6 8 P > 2 1 6 6 0 A > > entonces poniendo todo lo que obliga el postres osea el group by > mes,asidet.asicuecod,,asideb,asihab,cuegrutip > me sale algo como esto > 1 1 10 2 8 A > 1 1 3 1 2 A > 1 2 14 6 8 P > 2 1 6 6 0 A > > y por eso digo que si pongo todas las opciones de agrupacion no tengo lo > que deseo. > > Saludos > > ------------------------------ > Date: Tue, 10 Feb 2009 11:17:54 -0300 > Subject: Re: [pgsql-es-ayuda] Ayuda con group by > From: mburd...@gmail.com > To: fs...@hotmail.com > CC: pgsql-es-ayuda@postgresql.org > > > A simple vista, a cualquier campo al que no le estes aplicando una funcion > agregada (sum, count, avg) lo tenes que poner en el group by. > Además no estoy seguro de que puedas hacer group by mes cuando mes es el > alias. > > vos decis que con esto no obtenes lo deseado?: > > select extract(MONTH from asifec) as > mes,asidet.asicuecod,sum(asidet.asideb) as asideb,sum(asidet.asihab) as > asihab,asideb-asihab as saldo ,cuegrutip as grupo > FROM asicab,asidet,agencias,cuentagrupo > WHERE agencias.agecod=asicab.asiagecod > and asicab.asiagecod=asidet.asiagecod > and asicab.asidoc=asidet.asidoc > and asicab.asinum=asidet.asinum > and cuentagrupo.cuegrucod=substring(asidet.asicuecod,1,1) > and asifec<=now() > group by extract(MONTH from asifec),asidet.asicuecod, > asideb-asihab,cuegrutip > ORDER BY mes,asicuecod > > Saludos > > On Tue, Feb 10, 2009 at 11:06 AM, Fernandos Siguenza <fs...@hotmail.com>wrote: > > Amigos como estan, necesito que me ayuden tengo problemas con un select, > quiero agrupar una consulta por mes y por cuenta contable, tal y como lo > indico a continueacion > > select extract(MONTH from asifec) as > mes,asidet.asicuecod,sum(asidet.asideb) as asideb,sum(asidet.asihab) as > asihab,asideb-asihab as saldo ,cuegrutip as grupo > FROM asicab,asidet,agencias,cuentagrupo > WHERE agencias.agecod=asicab.asiagecod > and asicab.asiagecod=asidet.asiagecod > and asicab.asidoc=asidet.asidoc > and asicab.asinum=asidet.asinum > and cuentagrupo.cuegrucod=substring(asidet.asicuecod,1,1) > and asifec<=now() > group by mes,asidet.asicuecod > ORDER BY mes,asicuecod > > Pero al ejecutar esta consulta me da el siguiente mensaje de error > column "asidet.asideb" must appear in the GROUP BY clause or be used in an > aggregate function > > Si pongo dentro del group by la columna asideb, luego me pide igual al > asihab, y si ponto todas estas no es obtengo el resultado que deseo, > alguien me puede ayudar a ver que estoy haciendo mal. > > ------------------------------ > Color coding for safety: Windows Live Hotmail alerts you to suspicious > email. Sign up > today.<http://windowslive.com/Explore/Hotmail?ocid=TXT_TAGLM_WL_hotmail_acq_safety_112008> > > > > ------------------------------ > Color coding for safety: Windows Live Hotmail alerts you to suspicious > email. Sign up > today.<http://windowslive.com/Explore/Hotmail?ocid=TXT_TAGLM_WL_hotmail_acq_safety_112008> >