Thread: Aggregates and joined tables...

Aggregates and joined tables...

From
"omid omoomi"
Date:
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.


Re: [GENERAL] Aggregates and joined tables...

From
Tom Lane
Date:
"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

Re: Aggregates and joined tables...

From
"omid omoomi"
Date:
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.