Abfragen mehrerer SUMs desselben Elements mithilfe von SQL in iReport
Ich erstelle einen JasperReport mit iReport und bin daher * auf eine SQL-Abfrage beschränkt.
Ich habe eine Tabelle 'statistics' mit den Spalten 'name' (VARCHAR), 'count' (INTEGER) und 'datetime' (DATETIME).
Es ist einfach genug, die Summe der 'count'-Spalte zu erhalten, wenn der' name 'für den letzten Tag "test" war, ebenso für die letzte Woche und den letzten Monat (siehe unten).
Arbeits-SQL-Anweisung:
<code> SELECT SUM(count)as 'today' FROM statistics WHERE name = "test" AND $P{oneDayAgo} <= datetime AND datetime <= $P{now} </code>Da ich jedoch nur mit einer SQL-Anweisung arbeiten muss, muss ich sie irgendwie kombinieren. Ich habe versucht, UNION zu verwenden (siehe unten), aber das hat nicht funktioniert.
Fehlgeschlagene SQL-Anweisung:
<code>SELECT SUM(count)as 'today' FROM statistics WHERE name = "test" AND $P{oneDayAgo} <= datetime AND datetime <= $P{now} UNION SELECT SUM(count)as 'thisWeek' FROM statistics WHERE name = "test" AND $P{oneWeekAgo} <= datetime AND datetime <= $P{now} UNION SELECT SUM(count)as 'thisMonth' FROM statistics WHERE name = "test" AND $P{oneMonthAgo} <= datetime AND datetime <= $P{now} </code>
(*) Man kann zusätzliche Abfragen nur für Grafiken oder Kreuztabellen hinzufügen, von denen keine meinem Zweck dient.