Announcement

Collapse
No announcement yet.

Kalenderwochen per SQL auswerten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Kalenderwochen per SQL auswerten

    Hallo,

    ich benötige kalenderwochenmäßige Paradox-Auswertungen per SQL. Ich habe auch schon einen Lösungsansatz

    SELECT Nr, <br>
    ..cast((PruefDat-"01/01/2000"+<b>5</b>)/7 as integer) as KW,<br>
    FROM pr_alpro<br>
    where PruefDat>"01/01/2000"<br>

    Problem bei dieser Auswertung ist, dass ich jetzt weiß, dass wenn ich den Korrekturwert <b>5</b> eingebe, die Kalenderwochen für 2000 stimmen. Ich möchte aber, dass die Kalenderwoche in der Form 2.2000 angezeigt wird und auch für jahresübergreifede Auswertungen gilt, so wie diese Quartalsauswertung:

    cast(cast((EXTRACT(MONTH FROM PruefDat)+2)/3 as integer) as CHARACTER(1)) || "." || cast(EXTRACT(YEAR FROM PruefDat) as CHARACTER(4))

    die das Quartal im Format 4.2000 ausgibt.

    Wer weiß eine Lösung?

    Gruß Gerd.

  • #2
    Hallo Gerd,

    wie du dein Problem lösen kannst, weiß ich auch nicht, aber ich kann dir Informationen zur Wochennummer anbieten.

    Unter http://home.t-online.de/home/PeterJHaas/Artikel.htm findest du einen Artikel zur Wochennummerberechnung mit einigen Hintergrundinfos. Am Ende befindet sich der Link auf eine Unit, die in der Lage ist, zwischen Kalender und Wochendarstellung umzurechnen.

    Wenn du die Datensätze einer bestimmten Woche erhalten möchtest, dann kannst du das Start- und das End-Datum der Woche berechnen und prüfen, ob das Datum dazwischenliegt.

    Eine Ausgabe der Wochennummer solltest du nach ISO 8601 vornehmen, diese ist seit 1993 als DIN EN 28601 der dafür vorgesehene Industriestandard. Hinweise zu dieser Norm findest du ebenfalls unter der genannten Adresse, Funktionen zur Ausgabe sind in der Unit vorhanden.

    MfG Peter

    Comment


    • #3
      Ganz dumme Frage als Antwort:

      Alle DB-Systeme die ich schon programmiert haben (Paradox gehört (leider) nicht dazu) besitzen eine Datum-in-KW Umrechnungsfunktion...hast du da schonmal in der Paradox-Doku nach gestöbert?

      Gruß, Smitt

      Comment


      • #4
        Hallo Eric,

        deine eigentliche Frage kann ich natürlich nicht beantworten :-), aber die LocalSQL unterstützt dieses bisher nicht.

        Allerdings muß man sich ganz deutlich nach dem Sinn dieser Funktion fragen, wenn man sich ein wenig mit der Geschichte befaßt hat. Unterschiedliche Datenbanken liefern unterschiedliche Wochennummern, und alle diese Nummern sind in großen Teilen der Welt ungültig, wenn auch nicht immer in den gleichen. Für die Wochennummern gibt es mehrere Definitionen, zum Beispiel ist in Amerika der Sonntag der erste Tag der Woche, im arabischen Raum der Sonnabend und in Europa zumindestens im Geschäftbereich weitestgehend der Montag. Im Privatbereich wird beispielsweise in Großbritanien immer noch von der Hälfte der Bevölkerung der Sonntag als erster Tag angesehen. Und das Finanzjahr beginnt in Großbritanien mitten im Kalenderjahr und so werden dann auch die Wochen gezählt. Eigentlich ist ja alles wohldefininiert, nur was nutzt es, wenn sich kaum jemand dran hält.

        MfG Peter

        Comment


        • #5
          Moin Peter,

          da hast du recht. Sind wir auch mal reingefallen. :-) Die Regeln wann die KW1 anfängt sind nac ISO und DIN auch unterschiedlich. Je nach dem welches der erste Wochentag im neuen Jahr ist, gehört diese Woche noch zum alten oder zum neuen Jahr - und dieser "Grenz"-Wochentag ist eben unterschiedlich.
          Naja, man muß halt nur wissen wo die DB herkommt und das entsprechend umrechnen *g*

          Gruß, Smitt

          Comment


          • #6
            Hallo Eric,

            Zwischen ISO und DIN gibt schon seit den 70er Jahren keinen Unterschied mehr. 1976 wurde die Wochennummerierung nach DIN 1355:1974 eingeführt. Diese Norm basierte auf der Empfehlung ISO/R 2015-1971.

            Einfach in einigen Jahren eine 1 zu addieren, reicht übrigens nicht aus, da auch der Wochenbeginn unterschiedlich ist. Dies mag im Geschäftsleben nicht so auffallen, weil am Wochenende nicht gearbeitet wird, kann aber durchaus zu Problemen führen.

            Bei einer DB reicht es nicht zu wissen, wo sie herkommt. Bei SQL-92 ist die Wochennummer nach ISO vorgesehen, aber nicht immer ist auch SQL-92 drin, wo es drauf steht.

            Ich habe inzwischen das Gefühl, daß einige die erstbeste Definition implementieren, von der sie hören, einige implementieren ISO, aber niemand blickt so richtig über den Tellerrand. Ich denke, daß die Wochennummernproblematik bei den Entwicklern bisher überhaupt nicht ins Bewußtsein gerückt ist. Übrigens findet man auch in den einschlägigen Kalenderseiten im Internet fast keine Infos zur Wochennummer, und wenn, dann auch dort oft nur sehr einseitige. Ich hoffe, daß sich dies mal ändert, die Hoffnung, daß sich durch ISO in den nächsten Jahren eine Verbesserung der Situation einstellt, habe ich inzwischen aufgegeben.

            MfG Peter

            Comment

            Working...
            X