Jak zapytać o wiele SUM tego samego elementu za pomocą SQL w iReport
Tworzę JasperReport przy użyciu iReport i jako taki jestem ograniczony * do jednego zapytania SQL.
Mam tabelę „statystyki” z kolumnami „nazwa” (VARCHAR), „liczba” (INTEGER) i „datetime” (DATETIME).
Jest to wystarczająco proste, aby uzyskać sumę kolumny „zliczanie”, gdy „nazwa” była „testowa” na ostatni dzień i podobnie w ostatnim tygodniu i miesiącu (patrz poniżej)
Działająca instrukcja SQL:
<code> SELECT SUM(count)as 'today' FROM statistics WHERE name = "test" AND $P{oneDayAgo} <= datetime AND datetime <= $P{now} </code>Ponieważ jednak mam tylko jedną instrukcję SQL do pracy, muszę jakoś je połączyć. Próbowałem użyć UNION (jak poniżej), ale to nie zadziałało.
Niepowodzenie instrukcji SQL:
<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>
(*) można dodawać dodatkowe zapytania tylko dla wykresów lub zakładek krzyżowych, z których żaden nie służy mojemu celowi.