Einzelnen Beitrag anzeigen

jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: SQL: Umsatz je Jahr ohne Lücken ermitteln

  Alt 25. Feb 2018, 13:19
Nja, du kannst natürlich auch einfach dafür sorgen, dass du in jedem Jahr Umsatz hast.
Das ist ja vielleicht noch möglich, aber wie macht man das für die Kunden.
Ok, als Dienstleister Rechnungen stellen. Negative Zahlen sind ja auch ungleich 0.

Aber es ist wie Du sagtest.

Kein RDBMS wird Datensätze liefern, wo keine Daten sind. SQL arbeitet Mengen orientiert, "Nicht" Mengen werden nur darstellbar, indem man Mengen definiert, die das gewünschte in irgendeiner Form beschreiben.

In PG (u.a.) geht das sehr elegant ad hoc. Im Falle der Jahres, Montas und Tageswerte, welches für Auswertungen usw. ein immer wiederkehrendes Thema ist, bietet sich der Vorschlag von mkinzler als einfachste Lösung an und ist sehr kompatibel zu allen RDBMS.

Eine schlichte Tabelle mit den bloßen Datumsangaben, ruhig locker und redundant definitert:
Code:

Jahr|Monat|MonatDeutsch|Tag|Wochentag|Datum    |Quartal|Geschäftsjahr|Halbjahr|..usw
2018|1    |Januar     |1  |Montag  |01.01.2018|Q1     |2017         |1       | ..usw
2018|1    |Januar     |2  |Dienstag |02.01.2018|Q1     |2017         |1       | ..usw

Kann nach Bedarf mit Ferienzeiten usw. ergänzt werden, wird u.U. bei internationalen Unternehmen ein eigenes Modell.
Sehr hilfreich auch Views, die das anhand dieser einen Tabelle systematisch für verschiedene Bereiche auf den Punkt liefern, View Geschäftsjahr, View Ferien, View Quartal, ..

Wie weit man das treibt und benötigt, kann jeder selber entscheiden. Redundanz tut hier m.E. nicht weh (wie immer, wenn es ordentlich überwacht wird), man spart sich viele Umrechnungen usw.

Eignet sich auch prima als Grundlage für Excel Style Pivotisierung (wenn die DB das hergibt), GeschäftsjahresMonate in Spalten, Jahre in Zeilen usw. .
Gruß, Jo

Geändert von jobo (25. Feb 2018 um 13:29 Uhr)
  Mit Zitat antworten Zitat