AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Anzahl Ferientage pro Monat ausgeben
Thema durchsuchen
Ansicht
Themen-Optionen

Anzahl Ferientage pro Monat ausgeben

Ein Thema von barnti · begonnen am 12. Mai 2013 · letzter Beitrag vom 13. Mai 2013
Antwort Antwort
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#1

Anzahl Ferientage pro Monat ausgeben

  Alt 12. Mai 2013, 14:11
Datenbank: Postgres • Version: 9.2 • Zugriff über: pgAdmin
Hallo und einen schönen Sonntag,

ich grüble über die folgende Abfrage:
Code:
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
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...

Kann jemand helfen?

Viele Grüße,

Barntl
Gruß,

Barnti
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#2

AW: Anzahl Ferientage pro Monat ausgeben

  Alt 12. Mai 2013, 15:40
Code:
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
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.

Geändert von Furtbichler (12. Mai 2013 um 15:50 Uhr)
  Mit Zitat antworten Zitat
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Anzahl Ferientage pro Monat ausgeben

  Alt 12. Mai 2013, 15:51
Hallo,

vielen Dank! Ich muss mein SQL dringend aufbessern. Mit fällt das immer wieder schwer - leider auch bei relativ einfachen Abfragen...

Gruß,

Barnti
Gruß,

Barnti
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#4

AW: Anzahl Ferientage pro Monat ausgeben

  Alt 13. Mai 2013, 07:09
Ü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.
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#5

AW: Anzahl Ferientage pro Monat ausgeben

  Alt 13. Mai 2013, 08:47
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.
Bei GROUP BY muss der Server die Datensätze sowieso sortieren; ein ORDER BY wäre also keine Performancebremse.
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.
fork me on Github
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz