On Tue, Feb 10, 2009 at 9: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. >
select extract(MONTH from asifec) as mes,asidet.asicuecod,sum(asidet.asideb) as asideb,sum(asidet.asihab) as asihab,sum(asidet.asideb-asidet.asihab) as saldo , min(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 ORDER BY mes,asicuecod estoy adivinando, pero creo que esto te deberia funcionar... el problema es que si quieres que el saldo refleje la restas de los SUMS debes hacer otro sum y no pretender que el alias represente al valor sumado... en cuanto al grupo de la cuenta lo que hice fue sacar el menor (MIN) tu puedes cambiar por MAX si quieres para sacar el mayor, pero es indiferente... aun asi debe estar en una funcion de agregado sino lo quieres agregar al group by... la verdad es que eso del grupo es inutil, asumo que es un grupo por cuenta asi si sacas una cuenta debe tener uno y solo un grupo asociado... te saldria mas barato ponerlo en el group by -- Atentamente, Jaime Casanova Soporte y capacitación de PostgreSQL Asesoría y desarrollo de sistemas Guayaquil - Ecuador Cel. +59387171157 -- TIP 3: Si encontraste la respuesta a tu problema, publícala, otros te lo agradecerán