Hallo,
ausführlicher war ich in </archiv/2009/10/t192108/#m1281663>.
Ich habe versucht, das umzusetzen, aber es klappt noch nichnt so recht.
SELECT
gesamt.ym,
SUM(gesamt.zeit)
FROM (
SELECT FROM_UNIXTIME(JoggingTimestamp, '%Y%|%m') AS ym, SUM(JoggingZeit) AS zeit
FROM Jogging
WHERE UserId ='1'
wo ist die GROUP-BY-Klausel?
UNION ALL
SELECT FROM_UNIXTIME(KinoTimestamp, '%Y%|%m') AS ym, SUM(KinoZeit) AS zeit
FROM Kino
WHERE UserID='1'
wo ist die GROUP-BY-Klausel?
) gesamt
GROUP BY gesamt.ym DESC LIMIT 12
> Nur die im Kino verbrachte Zeit frage ich z.B. so ab:
> ~~~sql
> SELECT FROM_UNIXTIME(KinoTimestamp, '%Y%|%m') AS ym, SUM(KinoZeit) AS zeit
> FROM Kino
> WHERE UserID='1'
> GROUP BY ym DESC LIMIT 12
>
Da ist sie da. Warum entfernst Du diese in Deinen beiden Abfragen, die Du per UNION verknüpfst? Abgesehen davon geht Dir diese Abfrage bei keinem mir bekannten DBMS außer MySQL durch.
Gehe schrittweise vor:
a) Du hast Deine Einzelabfragen, die Dir Kino und Joggen liefern.
b) Fasse die beiden Ergebnisse in *einer* Ergebnismenge zusammen: UNION
c) Summiere und gruppiere über das Ergebnis aus b)
Freundliche Grüße
Vinzenz