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

Sta mi ne valja u GROUP BY ?

[es] :: Baze podataka :: Sta mi ne valja u GROUP BY ?

[ Pregleda: 2822 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

tiranin
Dorćol

Član broj: 37185
Poruke: 245
*.pat-pool.bgd.sbb.co.yu.



Profil

icon Sta mi ne valja u GROUP BY ?07.07.2005. u 14:05 - pre 229 meseci
Imam naredbu:

SELECT YEAR(vreme) AS YR, MONTH(vreme) AS MNT,
SUM(brojpromena) AS A,
SUM(brojdogadjaja) AS B
FROM MOJATABELA WHERE testflag <> '1'
GROUP BY YR, MNT
ORDER BY YR DESC, MNT DESC

kojom hoću da nađem mesečne zbirove nekih kolona. Upit mi iz Jave na MySQL radi korektno.
Probam isto sa DerbyDB (open source verzija Cloudscape) i javlja mi kroz debugger

Column 'YR' is not in any table in the FROM list or
it appears within a join specification and
is outside the scope of the join specification or
it appears in a HAVING clause and is not in the GROUP BY list.
If this is a CREATE or ALTER TABLE statement then 'YR' is not a column in the target table.


Oči sam izgubio gledajući i ne vidim šta treba da uradim. Možda je doduše bug u derby bazi. Ne znam tačno sta SQL standardi kazu , ali se meni ovo moje čini sasvim korektno.
Da li je dozvoljeno da rezultat neke funkcije bude u GROUP BY, jer pretpostavljam da je to ovde problem ?
 
Odgovor na temu

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
*.151.dialup.neobee.net.



+41 Profil

icon Re: Sta mi ne valja u GROUP BY ?07.07.2005. u 14:13 - pre 229 meseci
Moguce je da nije podrzan GROUP BY po alijasima. Probaj:
Code:

SELECT YEAR(vreme) AS YR, MONTH(vreme) AS MNT,
SUM(brojpromena) AS A,
SUM(brojdogadjaja) AS B
FROM MOJATABELA WHERE testflag <> '1'
GROUP BY YEAR(vreme), MONTH(vreme) 
ORDER BY YR DESC, MNT DESC
 
Odgovor na temu

tiranin
Dorćol

Član broj: 37185
Poruke: 245
*.pat-pool.bgd.sbb.co.yu.



Profil

icon Re: Sta mi ne valja u GROUP BY ?07.07.2005. u 14:16 - pre 229 meseci
Probao i ne radi. Javlja neku drugu poruku, sad se vise i ne secam tacnog teksta.
 
Odgovor na temu

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
*.151.dialup.neobee.net.



+41 Profil

icon Re: Sta mi ne valja u GROUP BY ?07.07.2005. u 14:21 - pre 229 meseci
Jesi probao da izbacis alijase iz ORDER dela?
Code:

SELECT YEAR(vreme) AS YR, MONTH(vreme) AS MNT,
SUM(brojpromena) AS A,
SUM(brojdogadjaja) AS B
FROM MOJATABELA WHERE testflag <> '1'
GROUP BY YEAR(vreme), MONTH(vreme) 
ORDER BY YEAR(vreme) DESC, MONTH(vreme) DESC

Stavi tekst greske, mozda ce nam nesto znaciti.
 
Odgovor na temu

tiranin
Dorćol

Član broj: 37185
Poruke: 245
*.pat-pool.bgd.sbb.co.yu.



Profil

icon Re: Sta mi ne valja u GROUP BY ?07.07.2005. u 14:53 - pre 229 meseci
Kada izbacim alijase iz GROUP BY (i kada ih ima u SELECT... i kada ih nema) dela javlja

Syntax error: Encountered "YEAR" at line 1, column 144.

A kada potpuno izbacim GROUP BY i ORDER BY onda javlja

Column reference 'VREME' is invalid. When the SELECT list contains at least 1 aggregate then all entries must be valid aggregate expressions.

Kada izbacim SUM(...) greška je ista kao i u prvom postu.


Zato mi se i čini da funkcije YEAR() i MONTH() nisu dozvoljene u GROUP BY ni preko alijasa niti kada su napisane kao funkcije. Mozda to vazi i za druge funkcije, nisam stigao da probam.

 
Odgovor na temu

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
*.151.dialup.neobee.net.



+41 Profil

icon Re: Sta mi ne valja u GROUP BY ?07.07.2005. u 15:02 - pre 229 meseci
Jedno banalno pitanje:
Da li DerbyDB poznaje funkcije YEAR i MONTH?
Ja nemam vise ideja, srecno!
 
Odgovor na temu

tiranin
Dorćol

Član broj: 37185
Poruke: 245
*.pat-pool.bgd.sbb.co.yu.



Profil

icon Re: Sta mi ne valja u GROUP BY ?07.07.2005. u 15:37 - pre 229 meseci
Da, poznaje ih, i rade OK u obicnoj SELECT naredbi, ali u okviru ovog GROUP BY im izgleda ne radi kako treba.
 
Odgovor na temu

[es] :: Baze podataka :: Sta mi ne valja u GROUP BY ?

[ Pregleda: 2822 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

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