Hallo,
folgendes Problem:
Ich mach ein Programm das in einer Tabelle alle Eingänge mengenmäßig speichert (liste).
Was und von wem eingegangen ist, ist per SPENDER_ID und ITEM_ID dort mit vermerkt.
Bei der Übersicht über die fleissigsten Spender steh ich nun vor einem Rätsel. Ich möchte drei fleissigsten Spender für jedes Item auflisten, das sah zuerst so aus:
SELECT *, sum(MENGE) FROM liste WHERE ITEM_ID=1 GROUP BY SPENDER_ID ORDER BY sum(MENGE) ASC, ID LIMIT 3;
und da bekomm ich ERROR #1111 - Invalid use of group function.
Wenn ich das ORDER BY weglasse, funzt es aber schonmal
Dann wollte ichs über ein Subquery sortieren, aber ich bekomm da wo die Klammer aufgeht einen Parse_Error (siehe unten)
Was mich vermuten lässt, dass es vielleicht mit meiner SQL-Version zusammenhängt, da in der Online-Doc immer ab Version 4+ die Rede ist. Kann das jemand bestätigen?
Gibt es noch eine andere Möglichkeit, wie ich das lösen kann, ohne das Ganze dann noch in PHP sortieren zu müssen?
Danke !
SELECT *
FROM (
SELECT * , sum( MENGE )
FROM liste
WHERE ITEM_ID =3
GROUP BY SPENDER_ID
LIMIT 3 )
ORDER BY sum( MENGE )
SELECT *
FROM ABC
WHERE ABC = (
SELECT * , sum( MENGE )
FROM liste
WHERE ITEM_ID =3
GROUP BY SPENDER_ID
LIMIT 3 )
ORDER BY sum( MENGE )
MySQL meldet:
#1064 - You have an error in your SQL syntax near 'SELECT * , sum( MENGE )
FROM liste
WHERE ITEM_ID =3
GROUP BY SPENDER_ID
LIMIT' at line 4
folgendes Problem:
Ich mach ein Programm das in einer Tabelle alle Eingänge mengenmäßig speichert (liste).
Was und von wem eingegangen ist, ist per SPENDER_ID und ITEM_ID dort mit vermerkt.
Bei der Übersicht über die fleissigsten Spender steh ich nun vor einem Rätsel. Ich möchte drei fleissigsten Spender für jedes Item auflisten, das sah zuerst so aus:
SELECT *, sum(MENGE) FROM liste WHERE ITEM_ID=1 GROUP BY SPENDER_ID ORDER BY sum(MENGE) ASC, ID LIMIT 3;
und da bekomm ich ERROR #1111 - Invalid use of group function.
Wenn ich das ORDER BY weglasse, funzt es aber schonmal
Dann wollte ichs über ein Subquery sortieren, aber ich bekomm da wo die Klammer aufgeht einen Parse_Error (siehe unten)
Was mich vermuten lässt, dass es vielleicht mit meiner SQL-Version zusammenhängt, da in der Online-Doc immer ab Version 4+ die Rede ist. Kann das jemand bestätigen?
Gibt es noch eine andere Möglichkeit, wie ich das lösen kann, ohne das Ganze dann noch in PHP sortieren zu müssen?
Danke !
SELECT *
FROM (
SELECT * , sum( MENGE )
FROM liste
WHERE ITEM_ID =3
GROUP BY SPENDER_ID
LIMIT 3 )
ORDER BY sum( MENGE )
SELECT *
FROM ABC
WHERE ABC = (
SELECT * , sum( MENGE )
FROM liste
WHERE ITEM_ID =3
GROUP BY SPENDER_ID
LIMIT 3 )
ORDER BY sum( MENGE )
MySQL meldet:
#1064 - You have an error in your SQL syntax near 'SELECT * , sum( MENGE )
FROM liste
WHERE ITEM_ID =3
GROUP BY SPENDER_ID
LIMIT' at line 4
Comment