Hallo zusammen,
wenn ich in einer Abfrage mit concat und group by arbeite wird mir der concat-Teil m. E. nach nicht korrekt ausgegeben. Bsp.:
SELECT
vs.teilnehmer\_id,
CONCAT(vs.seminar\_id, " ", vs.seminar) AS Seminar,
vs.seminar,
IFNULL(SUM(punkte),0) AS Bewertung
FROM view\_seminar vs
LEFT JOIN view\_seminar\_punkte vsp ON vsp.seminar\_id = vs.seminar\_id
WHERE vs.teilnehmer\_id \> 370 && vs.teilnehmer\_id
Ich bekomme hier als Ergebnis z. B.
370 | 1 Test8 | Test1 | 4
370 | 2 Test8 | Test2 | 3
Das Ergebnis sollte aber so aussehen (vgl. Spalte 2):
370 | 1 Test1 | Test1 | 4
370 | 2 Test2 | Test2 | 3
Was mache ich falsch?
Danke für Tipps,
Gruß
Marcel
Hallo Marcel,
das Statement sollte eher lauten
SELECT vs.teilnehmer\_id,
CONCAT(vs.seminar\_id, " ", vs.seminar) AS Seminar,
vs.seminar,
SUM(IFNULL(punkte,0)) AS Bewertung
FROM view\_seminar vs
LEFT JOIN view\_seminar\_punkte vsp
ON vsp.seminar\_id =vs.seminar\_id
WHERE vs.teilnehmer\_id \> 370 && vs.teilnehmer\_id
Ohne Testdaten kann ich das nicht natürlich verifizieren, aber ich vermute, dass der Teilnehmer 373 das Seminar Test8 besucht hat.
Bitte beachte auch, dass ich die Funktionen IFNULL und SUM gedreht habe. Sonst könnte es sein, dass bei nicht gesetzten Punktwert für ein Seminar die gesamte Summe 0 ist, obwohl die anderen Punkte eine größere Summe ergeben.
MfG Georg V.
Hallo Georg V.
vielen Dank für deine Hilfe,
zwar leidern och nicht dazu gekommen es zu testen, ist aber inhaltlich schon mal sehr aufschlussreich.
Vielen Dank nochmals
Gruß
Marcel