Monatssummen mit Hilfe von Subqueries ermitteln (SQL)

Ein häufiges Szenario ist eine Tabelle, die verschiedene Einträge mit einem bestimmten Datum beinhaltet, und für die dann Monatssummen für die Häufigkeit des Auftretens der Ereignisse ermittelt werden sollen:

z.B. eine Tabelle, die Beschwerdeneingänge erfasst, mit folgenden Beispielaufbau (vereinfacht)

ID, Beschwerde, Datum, Kunde

Kunde_id verweist dabei auf eine andere Tabelle Kunden. Beide verknüpft über ein ID-Feld. z.B. könnten folgende Datensätze erfasst sein:

1, Beschwerde 1, 17.02.2008, 993
2, Beschwerde 2, 19.02.2008, 1001
3, Beschwerde 3, 17.03.2008, 993

Nun möchte man z.B. ausgeben, wieviele Beschwerden pro Kunde in den einzelnen Monaten erfasst worden sind.

Folgende Query für eine Tabelle Beschwerde würde dies ermitteln:

abfrage:=‘SELECT  firma, Monat, Jahr, count(*) AS Anzahl, dateasStr FROM (SELECT firma, EXTRACT(Month FROM
Beschwerde.datum ) AS Monat,      EXTRACT(Year FROM Beschwerde.datum ) AS Jahr,
Trim(Cast(EXTRACT(Month FROM Beschwerde.datum ) as Char(2))) ||  ‚+QuotedStr(‚/‘)+‘ ||
Cast(EXTRACT(Year FROM Beschwerde.datum ) as Char(4)) AS DateAsStr  FROM beschwerde  inner join
kundentabelle on  kundentabelle.id=beschwerde.kunde ) as Beschwerde GROUP BY dateasstr,Jahr, Monat,
firma order by jahr desc
‚;

Daraus ergebe sich dann z.B. folgendes Ergebnis

Firma                 Monat     Jahr        Anzahl       DateAsStr
Musterfirma    2               2008       2                  02/2008

DateAsStr ergibt sich aus dem Konstrukt

Trim(Cast(EXTRACT(Month FROM Beschwerde.datum ) as Char(2))) ||  ‚+QuotedStr(‚/‘)+‘ ||
Cast(EXTRACT(Year FROM Beschwerde.datum ) as Char(4)) AS DateAsStr

Natürlich nicht zwingend erforderlich,  aber wie im echten Fall, nützlich, um z.B. gleich die passende Achsenbeschriftung für ein Chart zu haben.

Das SQL-Statement wurde für NexusDB generiert, für andere Datenbanken ist u.U. eine Anpassung notwendig.

Werbung

Aktuelle Top Aktionen bei Acer, HP, Lenovo, Bitdefender & Co

Angebote bei Acer
» Großer Acer Herbst Sale:Bis zu 200 Euro Rabatt auf viele Acer Notebooks, Convertibles, Gaming Notebooks und PC, Monitore und mehr bei den Acer Herbst Angeboten bis 02.10.2018


Angebote bei HP
» HP Back To School 2018: Viele HP Notebooks, Convertibles und Drucker im Angebot


Angebote bei Lenovo
» Lenovo Top Wochenangebote: Heiße ThinkPad und IdeaPad Wochenangebote mit großer Auswahl und dicken Rabatten


Weitere Möglichkeiten
» Top bei Otto: Sehr gute HP Notebook Angebote, teils mit Extras wie 4 Jahre Garantie und mehr
» Mehr Aktionen in der Übersicht: Aktuelle HP Angebote und mehr auf einem Blick


Aktuelle Bitdefender Aktionen:
» Top Angebot: Bitdefender "The Darkest Minds Promotion" mit kostenlosem Gewinnspiel und Angebot Total Security 2019 MultiDevice nur 39,99€ statt 79,99 Euro (50% Rabatt)
» Bitdefender Sommer-Aktion Version 2019 mit 15 Euro Rabatt auf Bitdefender Antivirus Plus 2019 (3 Geräte und 1 Jahr), 30 Euro Rabatt auf Bitdefender Internet Security 2019 (3 Geräte und 1 Jahr) und 40 Euro Rabatt auf Bitdefender Total Security Multi Device 2019 (5 Geräte und 1 Jahr)
» Bitdefender +1 Jahr dazu-Aktion
» Top für neue PCs! Bitdefender AntiVirus Plus Lebenslang Edition: 5 Jahre Schutz für nur für nur 89,95
Weitere aktuelle Bitdefender Angebote » Alle Bitdefender Angebote auf einem Blick

Werbung


Verwandte Themen:


Sorry! Unser Kommentarfunktion ist vorübergehend geschlossen.