ugrás a tartalomhoz

MySQL 5.1 #1111 - Invalid use of group function probléma GROUP_CONCAT-tal

tisch.david · 2009. Nov. 7. (Szo), 17.01
Sziasztok!

Nem vagyok kezdő adatbázisokból, ez most mégsem akar menni:
SELECT GROUP_CONCAT(CONCAT(SUM(RT.FIZETENDO), ' ', RT.VALUTA_KOD) SEPARATOR ' + ')
FROM RENDELES_TETEL RT
WHERE RT.RENDELES_KOD = 1304 AND RT.TOROLT = 0 AND RT.FIZETENDO <> 0
GROUP BY RT.VALUTA_KOD
ORDER BY RT.VALUTA_KOD ASC
A $subject-ben szereplő hibát kapom, GROUP_CONCAT nélkül viszont megy. Van valami tippetek, hogy mi a gond?

Válaszokat előre is köszi!
Üdv:

Dávid
 
1

Képzett mező

Poetro · 2009. Nov. 7. (Szo), 19.50
Gondolom azzal van gondja, hogy ez nem egy tényleges mező, hanem több mezőből képzett kifejezés. Mondjuk nem is teljesen értem miért lenne szükség itt GROUP_CONCAT-ra, mikor a SUM is már a csoportból képzett összeg, és a VALUTA_KOD alapján megy a GROUP BY.
2

GROUP_CONCAT: row set-ből column

tisch.david · 2009. Nov. 8. (V), 00.00
Szia Poetro!

Én itt arra használnám a group_concat függvényt, hogy egy row set-ből string column-t képezzek, ugyanis egyszerre szeretném lekérdezni a felhasználó összes megrendelését, de úgy, hogy abban már mezőként benne van a rendelés tételekből aggregált fizetendő is. Van erre valami jobb módszer?

Üdv:

Dávid

Szerk.:

SELECT GROUP_CONCAT(VALUTA_FIZETENDO)
FROM (SELECT CONCAT(SUM(RT.FIZETENDO), ' ', RT.VALUTA_KOD) VALUTA_FIZETENDO
FROM RENDELES_TETEL RT
WHERE RT.RENDELES_KOD = R.KOD AND RT.TOROLT = 0 AND RT.FIZETENDO <> 0
GROUP BY RT.VALUTA_KOD
ORDER BY RT.VALUTA_KOD ASC) VALUTA_FIZETENDO_HALMAZ
Ebben a formában elfogadná, de ekkor meg a WHERE-ben szereplő R.KOD hivatkozásra mondja, hogy unknown column, ahol az R-et a külső SELECT-ben definiáltam. :(
3

R tábla

Poetro · 2009. Nov. 8. (V), 00.04
WHERE-ben szereplő R.KOD hivatkozásra mondja, hogy unknown column

Ezt azért teszi mert nincs a lekérdezésben R nevű tábla, vagy csak én nem látom.
4

R tábla

tisch.david · 2009. Nov. 8. (V), 15.35
a WHERE-ben szereplő R.KOD hivatkozásra mondja, hogy unknown column, ahol az R-et a külső SELECT-ben definiáltam

Az egész SELECT sematikusan így néz ki:
SELECT ..., itt_jon_az_altalam_mar_idezett_kodreszlet
FROM RENDELES R
...
Ennek ellenére az említett helyen nem tudja értelmezni az R-re történő hivatkozást.

A fentiekben említetten kívül szerinted van más megoldás arra, hogy a fizetendőt ne kelljen egy csomó subselect-ben lekérdeznem?

Köszi! Üdv:
Dávid