Hallo,
ich versuche mich seit Stunden an einer SQL-Anfrage die zur statistischen Auswertung benötigt wird. Die Tabellenstruktur ist fix und kann unter keinen Umständen verändert werden.
Es gibt eine Tabelle mit folgender Struktur:
timestamp | result_ID | (... weitere Felder sind nicht von Bedeutung)
==================
14-01-09 | 1
14-01-09 | 4
14-01-09 | 3
15-01-09 | 4
15-01-09 | 1
15-01-09 | 2
15-01-09 | 4
Was für statistische Zwecke benötigt wird, ist eine Abfrage die ausgibt an welchem Tag welche Ergebnisse wie oft erzielt wurden und wieviele Aufgaben überhaupt durcheführt wurden (= Summe der aktivitäten an einem Tag)
Die Ergebnistabelle soll also so aussehen:
Datum | Aktivitäten | erg1 | erg2 | erg3 | erg4 |
=====================================
14-01-09| 3 | 1 | 0 | 1 | 1 |
15-01-09| 4 | 1 | 1 | 0 | 2 |
Ich habe folgende Abfrage bisher:
Ich habe momentan dabei noch zwei Probleme:
1.) wie realisiere ich, dass eine "0" angezeigt wird, wenn ein bestimmtes Ergebnis an einem Tag nicht eingetreten ist. Bisher wird nämlich leider gar nichts angezeigt. Wenn die Anfrage über zwei Tabellen ging, könnte man einen LEFT JOIN machen, aber so bin ich ratlos....
2.) wie realisiere ich die Summe?
Hoffe auf Unterstützung!
Gruß Marokaner
ich versuche mich seit Stunden an einer SQL-Anfrage die zur statistischen Auswertung benötigt wird. Die Tabellenstruktur ist fix und kann unter keinen Umständen verändert werden.
Es gibt eine Tabelle mit folgender Struktur:
timestamp | result_ID | (... weitere Felder sind nicht von Bedeutung)
==================
14-01-09 | 1
14-01-09 | 4
14-01-09 | 3
15-01-09 | 4
15-01-09 | 1
15-01-09 | 2
15-01-09 | 4
Was für statistische Zwecke benötigt wird, ist eine Abfrage die ausgibt an welchem Tag welche Ergebnisse wie oft erzielt wurden und wieviele Aufgaben überhaupt durcheführt wurden (= Summe der aktivitäten an einem Tag)
Die Ergebnistabelle soll also so aussehen:
Datum | Aktivitäten | erg1 | erg2 | erg3 | erg4 |
=====================================
14-01-09| 3 | 1 | 0 | 1 | 1 |
15-01-09| 4 | 1 | 1 | 0 | 2 |
Ich habe folgende Abfrage bisher:
Code:
SELECT r1.datum, erg1, erg2, erg3, erg4
FROM (
SELECT DATE_FORMAT( timestamp, '%d.%m.%Y' ) AS datum, count( result_ID ) AS erg1
FROM action WHERE result_ID = '1'
GROUP BY datum
)r1, (
SELECT DATE_FORMAT( timestamp, '%d.%m.%Y' ) AS datum, count( result_ID ) AS erg2
FROM action WHERE result_ID = '2'
GROUP BY datum
)r2, (
SELECT DATE_FORMAT( timestamp, '%d.%m.%Y' ) AS datum, count( result_ID ) AS erg3
FROM action WHERE result_ID = '3'
GROUP BY datum
)r3, (
SELECT DATE_FORMAT( timestamp, '%d.%m.%Y' ) AS datum, count( result_ID ) AS erg4
FROM action WHERE result_ID = '4'
GROUP BY datum
)r4
WHERE r1.datum = r2.datum
AND r1.datum = r3.datum
AND r1.datum = r4.datum
AND r2.datum = r3.datum
AND r2.datum = r4.datum
AND r3.datum = r4.datum
Ich habe momentan dabei noch zwei Probleme:
1.) wie realisiere ich, dass eine "0" angezeigt wird, wenn ein bestimmtes Ergebnis an einem Tag nicht eingetreten ist. Bisher wird nämlich leider gar nichts angezeigt. Wenn die Anfrage über zwei Tabellen ging, könnte man einen LEFT JOIN machen, aber so bin ich ratlos....
2.) wie realisiere ich die Summe?
Hoffe auf Unterstützung!
Gruß Marokaner
Zuletzt bearbeitet: