Thread: Aggregates and joined tables...
Hi all, I have a problem using aggregate function SUM() ... The platform is PostgreSQL 6.5.2 on i386-unknown-freebsd3.2, compiled by gcc 2.7.2.1 . The story is that I need to join two tables with an aggregate function. Here is a sample model : Table A consist of ( fa1 , fa2 ) Table B consist of ( fb1 , fb2 ) Table C consist of ( fc1 , fc2 ,fc3 ) I want to write a query which looks like this : select fa1 - sum(fc3) from A,B,C where fa1=fb1 and fb2=fc2 group by fa1 ; unfortunately I get this in result: ERROR: Illegal use of aggregates or non-group column in target list Any idea ? How can I have my result with only one SQL statement ? Thanks in advance Omid Omoomi _________________________________________________________________________ Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.
"omid omoomi" <oomoomi@hotmail.com> writes: > The platform is PostgreSQL 6.5.2 on i386-unknown-freebsd3.2, compiled by gcc > 2.7.2.1 . > I want to write a query which looks like this : > select fa1 - sum(fc3) > from A,B,C > where fa1=fb1 and fb2=fc2 > group by fa1 ; > unfortunately I get this in result: > ERROR: Illegal use of aggregates or non-group column in target list Works fine in current sources. Try upgrading to something newer than 6.5.2 ... regards, tom lane
Hello, I have upgraded my DB to 7.0.3, but there is still the problem. I think that it may be a bug. Joining 3 tables was not possible... It says "fa1 should be in aggregate too" ! While joining 2 tables gives wrong results ... ie, if the results should be like this: fa1 sum ----- ------- ali 100 omid 200 shaya 50 then I get this: fa1 sum ----- ------- ali 350 omid 350 shaya 350 Any more idea ? Omid Omoomi >>The platform is PostgreSQL 6.5.2 on i386-unknown-freebsd3.2, compiled by >>gcc 2.7.2.1 . >>The story is that I need to join two tables with an aggregate function. >>Here is a sample model : >>Table A consist of ( fa1 , fa2 ) >>Table B consist of ( fb1 , fb2 ) >>Table C consist of ( fc1 , fc2 ,fc3 ) >>I want to write a query which looks like this : >>select fa1 - sum(fc3) >>from A,B,C >>where fa1=fb1 and fb2=fc2 >>group by fa1 ; >>unfortunately I get this in result: >>ERROR: Illegal use of aggregates or non-group column in target list >Works fine in current sources. Try upgrading to something newer than 6.5.2 ... _________________________________________________________________________ Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.