[ 00000110001 @ 09.03.2009. 09:01 ] @
Zdravo,
ne znam da li je ovo pravo mjesto za ovo pitanje ali se nadam da jeste.
Koristim Delphi + Firebird i imam sljedeci problem.
Imam jedan SQL-Query koji selektuje iz tabele firme, znaci treba da na kraju imam group by firme.
E sad posto ja imam u selektu i aggregate funkcije, onda moram u group by da stavim "firme" i "tax".
Tu je i problem sto mi na kraju izbaci tri puta isto ime firme jer je takodje grupisano po "tax".
otprilike ovako:
Code:

select o.firme, o.tax*sum(o.pieces*o.price) totalprice 
from orders o
group by firme, tax

sto bi znacilo da imam na kraju ovakav izgled:
Code:

AAA        250,00
AAA        25,00
AAA        10,00
BBB         3,00

a meni treba da se firma AAA pojavi jednom sa sumom 285,00
konkretno moje pitanje bi glasilo:
Da li je moguce ovako nesto sa duplim select-om rijesiti, ili postoji neki drugi nacin da se to sredi?
Unaprijed hvala.
[ 00000110001 @ 09.03.2009. 10:36 ] @
samo da javim da sam ipak sam rijesio problem.
ako nekom zatreba ili ga interesuje rjesenje je sa duplim select-om
Code:

select x.firme, sum(x.totalprice) totalprice
from(
select o.firme, o.tax*sum(o.pieces*o.price) totalprice 
from orders o
group by o.firme, o.tax) x
group by x.firme


mozda ima i nesto jednostavnije ali ovo radi :)
[ savkic @ 09.03.2009. 10:38 ] @
Samo izostavi tax iz GROUP BY.

> Imam jedan SQL-Query koji selektuje iz tabele firme, znaci treba da na kraju imam group by firme.
> E sad posto ja imam u selektu i aggregate funkcije, onda moram u group by da stavim "firme" i "tax

Polje moraš staviti u GROUP BY samo ako se nalazi i u SELECT delu a nije deo agregatne funkcije. Znači da imaš:
select o.firme, o.tax, o.tax*sum(o.pieces*o.price) totalprice
[ 00000110001 @ 09.03.2009. 10:44 ] @
pokusao sam vec ranije da izostavim TAX iz group by ali mi javlja gresku.
evo npr. sta mi javlja IBOConsole:
Code:

ISC ERROR CODE:335544569

ISC ERROR MESSAGE:
Dynamic SQL Error
SQL error code = -104
Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause)


ali i ovo sa duplim selektom je za mene prihvatljivo rjesenje
[ savkic @ 09.03.2009. 10:51 ] @
> pokusao sam vec ranije da izostavim TAX iz group by ali mi javlja gresku.

Ah da, prevideo sam da ti je TAX van SUM, jednostavno ga ubaci u SUM.
sum(o.tax* o.pieces * o.price)
[ 00000110001 @ 09.03.2009. 11:14 ] @
puno hvala savkic, i ovo sad radi, ovako necu morati pisati dupli select :)