From: | Fernandos Siguenza <fsigu(at)hotmail(dot)com> |
---|---|
To: | <mburdman(at)gmail(dot)com> |
Cc: | Foro Postgres <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: Ayuda con group by |
Date: | 2009-02-10 14:26:10 |
Message-ID: | COL111-W723AE835757CF6A8CE6228A1BD0@phx.gbl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
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: mburdman(at)gmail(dot)com
To: fsigu(at)hotmail(dot)com
CC: pgsql-es-ayuda(at)postgresql(dot)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 <fsigu(at)hotmail(dot)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.
_________________________________________________________________
Color coding for safety: Windows Live Hotmail alerts you to suspicious email.
http://windowslive.com/Explore/Hotmail?ocid=TXT_TAGLM_WL_hotmail_acq_safety_112008
From | Date | Subject | |
---|---|---|---|
Next Message | Mario Burdman | 2009-02-10 14:31:54 | Re: Ayuda con group by |
Previous Message | Mario Burdman | 2009-02-10 14:17:54 | Re: Ayuda con group by |