wo ist die GROUP-BY-Klausel?
wo ist die GROUP-BY-Klausel?
Da ist sie da. Warum entfernst Du diese in Deinen beiden Abfragen, die Du per UNION verknüpfst?
Das hatte ich ursprünglich nicht, aber
SELECT
gesamt.ym,
SUM(gesamt.zeit)
FROM (
SELECT FROM_UNIXTIME(JoggingTimestamp, '%Y%|%m') AS ym, SUM(JoggingZeit) AS zeit
FROM Jogging
WHERE UserId ='1'
GROUP BY ym DESC LIMIT 12
UNION ALL
SELECT FROM_UNIXTIME(KinoTimestamp, '%Y%|%m') AS ym, SUM(KinoZeit) AS zeit
FROM Kino
WHERE UserID='1'
GROUP BY ym DESC LIMIT 12
) gesamt
GROUP BY gesamt.ym DESC LIMIT 12
liefert dasselbe Ergebniss wie die alleinige Abfrage nach der beim Jogging verbrachten Zeit. Die Kinozeit wird einfach nicht aufaddiert.
Gehe schrittweise vor:
a) Du hast Deine Einzelabfragen, die Dir Kino und Joggen liefern.
Ja.
b) Fasse die beiden Ergebnisse in *einer* Ergebnismenge zusammen: UNION
So wie oben gemacht??
c) Summiere und gruppiere über das Ergebnis aus b)
Da liegt wohl noch ein Fehler bei meiner Abfrage vor?
Ich les nun schon seit Stunden alles über union und Konsorten, aber der Groschen will nicht fallen.
Grüße, Franco