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: [email protected]
To: [email protected]
CC: [email protected]

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 <[email protected]> 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

Responder a