![]() |
Datenbank: Postgres • Version: 9.2 • Zugriff über: pgAdmin
Anzahl Ferientage pro Monat ausgeben
Hallo und einen schönen Sonntag,
ich grüble über die folgende Abfrage:
Code:
Das Ergbenis liefert mir fast das, was ich möchte. Das Problem: Wenn es in einem Monat, hier September, keine Feiertage gibt, erschint diese Zeile auch nicht. Ihc möchte aber eine 0 als Ausgabe...
SELECT
"Timedimension".year, "Timedimension".month, CASE WHEN count("Timedimension".holiday) = 0 THEN 0::bigint ELSE count("Timedimension".holiday) END AS count FROM public."Timedimension" WHERE "Timedimension".holiday = 'Holiday' GROUP BY "Timedimension".year, "Timedimension".month ORDER BY "Timedimension".year, "Timedimension".month Kann jemand helfen? Viele Grüße, Barntl |
AW: Anzahl Ferientage pro Monat ausgeben
Code:
Du kannst Dir das Leben noch vereinfachen, wenn es eine Spalte 'Monat und Jahr' gibt. Nach dieser kannst Du dann gruppieren und sortieren. Das geht dann noch etwas einfacher, als ewig 'year,month' zu schreiben.
SELECT
"Timedimension".year, "Timedimension".month, sum (CASE WHEN "Timedimension".holiday = 'Holiday' then 1 else 0 end) as count FROM public."Timedimension" GROUP BY "Timedimension".year, "Timedimension".month ORDER BY "Timedimension".year, "Timedimension".month |
AW: Anzahl Ferientage pro Monat ausgeben
Hallo,
vielen Dank! Ich muss mein SQL dringend aufbessern. Mit fällt das immer wieder schwer - leider auch bei relativ einfachen Abfragen... Gruß, Barnti |
AW: Anzahl Ferientage pro Monat ausgeben
Übrigens: Informationen dieser Art werden in einer Dimensionstabelle nicht berechnet, sondern geeignet abgelegt.
Du kannst z.B. eine Spalte 'Monat/Jahr' anlegen, in der z.B. 'Mai 2013' steht. Dann hast Du sowohl ein einfaches Gruppierungskriterium als auch gleich das Ausgabeformat (in Deutsch). Dann kannst Du eine Spalte 'Anzahl Feiertage im bisherigen Monat' anlegen. Dort steht dann für jeden Tag des Monats, wieviele Feiertage es in diesem Monat bisher gab. Ich würde dann noch eintragen, der wievielte Arbeitstag der Woche, des Monats, des Quartals und des Jahres ein bestimmtes Datum ist. Das erleichtert eine Statistik über Arbeitsleistungen sehr (natürlich nicht personenbezogen). So wäre die Query dann übrigens:
Code:
select MonatJahr,
max(FeierTageImMonat) from TimeDimension group by MonatJahr -- sort by MonatJahr -- ich würde das im Client machen, der Server soll nicht sortieren müssen. |
AW: Anzahl Ferientage pro Monat ausgeben
Zitat:
Die Anzahl der Datensätze ist ausserdem sehr gering. Der Server sollte hier ruhig sortieren, da der Aufwand für den Server kleiner ist als für den Client. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz