Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

select u select-u (dupli group by)

[es] :: Firebird/Interbase :: select u select-u (dupli group by)

[ Pregleda: 2424 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

00000110001

Član broj: 22138
Poruke: 38
*.touchit.at.



Profil

icon select u select-u (dupli group by)09.03.2009. u 09:01 - pre 184 meseci
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.
 
Odgovor na temu

00000110001

Član broj: 22138
Poruke: 38
*.touchit.at.



Profil

icon Re: select u select-u (dupli group by)09.03.2009. u 10:36 - pre 184 meseci
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 :)
 
Odgovor na temu

savkic
Igor Savkić

Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: select u select-u (dupli group by)09.03.2009. u 10:38 - pre 184 meseci
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
 
Odgovor na temu

00000110001

Član broj: 22138
Poruke: 38
*.touchit.at.



Profil

icon Re: select u select-u (dupli group by)09.03.2009. u 10:44 - pre 184 meseci
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
 
Odgovor na temu

savkic
Igor Savkić

Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: select u select-u (dupli group by)09.03.2009. u 10:51 - pre 184 meseci
> 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)
 
Odgovor na temu

00000110001

Član broj: 22138
Poruke: 38
*.touchit.at.



Profil

icon Re: select u select-u (dupli group by)09.03.2009. u 11:14 - pre 184 meseci
puno hvala savkic, i ovo sad radi, ovako necu morati pisati dupli select :)
 
Odgovor na temu

[es] :: Firebird/Interbase :: select u select-u (dupli group by)

[ Pregleda: 2424 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.