RE: Ayuda con group by

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

In response to

Responses

Browse pgsql-es-ayuda by date

  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