Ergebnis 1 bis 8 von 8

Thema: Berechnung von Produktionsdauer

  1. #1
    gdietrich ist offline Neuer Benutzer
    Registriert seit
    04.01.2012
    Beiträge
    27

    Standard Berechnung von Produktionsdauer

    Hallo Leute,
    ich habe folgendes Problem:
    Zuerst einmal vielleicht, dass die Datentabellen noch nicht produktiv aufgebaut sind also kann hier noch das Richtige gesetzt bzw. ver�ndert werden.

    Ich muss eine Produktionsdauerberechnung durchf�hren die folgende Randbedingungen enth�lt.
    1. Es gibt eine Tabelle in der die aktive Produktionsdauer hinterlegt ist (z.B Startzeit 08:00 / Endzeit 22:00 ), k�nnte ich also dementsprechend als TIME Feld hinterlegen.
    2. Ich kann die Produktionsdauer nicht in einem TIME Feld erfassen, da sie �ber 24 Stunden sein kann. ( z.B 30:00 h )
    3. Der Planer verplant nun die Produktion anhand des Datums und einer Startzeit (z.B 02.02.2012 / 11:00 Uhr )

    Und jetzt genau steh ich auf dem Schlauch da ich mir nicht im klaren bin, wie ich die Produktionsdauer so hinbiegen kann, dass ich auch mit ihr rechnen kann.

    Sprich mir fehlt das Speicherformat der Produktionsdauer und die dann folgende Typumwandlung, damit ich damit auch rechnen kann.

    Kann mir hier jemand einen Tip geben ?

  2. #2
    akretschmer ist gerade online Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von gdietrich Beitrag anzeigen
    Hallo Leute,
    ich habe folgendes Problem:
    Zuerst einmal vielleicht, dass die Datentabellen noch nicht produktiv aufgebaut sind also kann hier noch das Richtige gesetzt bzw. ver�ndert werden.

    Ich muss eine Produktionsdauerberechnung durchf�hren die folgende Randbedingungen enth�lt.
    1. Es gibt eine Tabelle in der die aktive Produktionsdauer hinterlegt ist (z.B Startzeit 08:00 / Endzeit 22:00 ), k�nnte ich also dementsprechend als TIME Feld hinterlegen.
    2. Ich kann die Produktionsdauer nicht in einem TIME Feld erfassen, da sie �ber 24 Stunden sein kann. ( z.B 30:00 h )
    3. Der Planer verplant nun die Produktion anhand des Datums und einer Startzeit (z.B 02.02.2012 / 11:00 Uhr )

    Und jetzt genau steh ich auf dem Schlauch da ich mir nicht im klaren bin, wie ich die Produktionsdauer so hinbiegen kann, dass ich auch mit ihr rechnen kann.

    Sprich mir fehlt das Speicherformat der Produktionsdauer und die dann folgende Typumwandlung, damit ich damit auch rechnen kann.

    Kann mir hier jemand einen Tip geben ?
    Welche Version?

    9.2 bringt RANGE-Typen, einfach geil. Da Du noch nicht produktiv bist, wäre das ja vielleicht ein Einsatzszenario für Dich.

    Deine Probleme habe ich vielleicht nicht wirklich verstanden, aber hier Beipsiel mit den von Dir genannten Zahlen:

    Code:
    test=*# select '[2012-02-02 08:00,2012-02-02 22:00)'::tsrange;
                        tsrange
    -----------------------------------------------
     ["2012-02-02 08:00:00","2012-02-02 22:00:00")
    (1 row)
    
    test=*# select lower('[2012-02-02 08:00,2012-02-02 22:00)'::tsrange) + '11hour'::interval;
          ?column?
    ---------------------
     2012-02-02 19:00:00
    (1 row)
    
    test=*# select lower('[2012-02-02 08:00,2012-02-02 22:00)'::tsrange) + '30hour'::interval;
          ?column?
    ---------------------
     2012-02-03 14:00:00
    (1 row)
    Du kannst auch prüfen, ob ein RANGE-Wert in einen anderen reinpaßt, möglicherweise suchst Du sowas:

    Code:
    test=*# select   '[2012-02-02 08:00,2012-02-03 22:00)'::tsrange -  '[2012-02-02 08:00,2012-02-02 22:00)'::tsrange ;
                       ?column?
    -----------------------------------------------
     ["2012-02-02 22:00:00","2012-02-03 22:00:00")
    (1 row)
    Also, die Produktion würde von heute 08Uhr bis morgen 22Uhr gehen, die Maschinenzeit ist aber nur 8-22, der Bereich von heute 22 bis morgen 22Uhr bleibt übrig, das ist:

    Code:
    test=*# select upper('[2012-02-02 22:00:00,2012-02-03 22:00:00)'::tsrange) - lower('[2012-02-02 22:00:00,2012-02-03 22:00:00)'::tsrange);
     ?column?
    ----------
     1 day
    (1 row)

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  3. #3
    gdietrich ist offline Neuer Benutzer
    Registriert seit
    04.01.2012
    Beiträge
    27

    Standard

    Version 9.1
    Mein Problem ist die Produktionsdauer, da ich die ja nicht in ein TIME Feld reinpacken kann, da sie größer als 24h sein kann.

    Anhand meiner Beispieldaten nochmals das Szenario

    In der Stammdatenpflege wird die Produktionsdauer x festgelegt.
    Die Planung bekommt den Datensatz und schaut sich den Produktionsplan an.
    Sie setzen den Produktionsstart auf 02.02.2012 / 11:00 Uhr
    Jetzt will er natürlich sehen wann die Produktion fertig ist
    Dh: unter Berücksichtigung der realen Arbeitszeit 08:00 - 22:00 Uhr
    02.02 / 11:00 - 22:00 / 11h / Rest 19h
    03.02 / 08:00 - 22:00 / 14h / Rest 5h
    04.02 / 08:00 - 13:00 / Ende
    dh. ich muss ihm 04:02 / 13:00 auf den Schrim bringen, wobei ich wie gesagt ein Problem habe mit dem Format der Produktionsdauer, da diese ja größer 24:00 sein kann.

    Hoffe das ist etwas deutlicher

  4. #4
    akretschmer ist gerade online Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von gdietrich Beitrag anzeigen
    Version 9.1
    Mein Problem ist die Produktionsdauer, da ich die ja nicht in ein TIME Feld reinpacken kann, da sie größer als 24h sein kann.

    Anhand meiner Beispieldaten nochmals das Szenario

    In der Stammdatenpflege wird die Produktionsdauer x festgelegt.
    Die Planung bekommt den Datensatz und schaut sich den Produktionsplan an.
    Sie setzen den Produktionsstart auf 02.02.2012 / 11:00 Uhr
    Jetzt will er natürlich sehen wann die Produktion fertig ist
    Dh: unter Berücksichtigung der realen Arbeitszeit 08:00 - 22:00 Uhr
    02.02 / 11:00 - 22:00 / 11h / Rest 19h
    03.02 / 08:00 - 22:00 / 14h / Rest 5h
    04.02 / 08:00 - 13:00 / Ende
    dh. ich muss ihm 04:02 / 13:00 auf den Schrim bringen, wobei ich wie gesagt ein Problem habe mit dem Format der Produktionsdauer, da diese ja größer 24:00 sein kann.

    Hoffe das ist etwas deutlicher
    Ja, dann nimm halt INTERVAL:

    Code:
    test=*# select '30hour'::interval;
     interval
    ----------
     30:00:00
    (1 row)
    
    test=*# select now() + '30hour'::interval;
               ?column?
    -------------------------------
     2012-02-03 19:32:17.068123+01
    (1 row)
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  5. #5
    gdietrich ist offline Neuer Benutzer
    Registriert seit
    04.01.2012
    Beiträge
    27

    Standard

    Danke Andreas,

    kommt davon wenn man vor lauter Bäumen den Wald nicht mehr sieht

  6. #6
    gdietrich ist offline Neuer Benutzer
    Registriert seit
    04.01.2012
    Beiträge
    27

    Standard

    Da ich keine Chance habe auf den RANGE Wert zu warten hätte ich vielleicht doch noch eine Frage.

    Die Logik dahinter denke ich mal ist mir klar, nur an der Umsetzung in Postgres habert es noch.
    Ausgehend von meinem obigen Beispiel würde ich ja jetzt meiner Meinung nach folgendes berechnen

    Wenn die Startzeit ( 11:00 ) + Produktionsdauer ( 30:00 ) > als Schichtende ( 22:00 Uhr ) ist,
    setze Datum = Datum +1
    Produktionsende = Schichtende ( 22:00 ) - Startzeit (11:00 ) + ( Schichtende (22:00) - Schichtanfang (08:00) )
    damit hab ich dann den Tag durch und den Rest der Produktionszeit.
    Wie kann ich das verpacken, dass ich so lange weiterrechne bis das Produktionsende < dem Schichtende ist damit ich das tatsächlieche Enddatum/Zeit habe ?

  7. #7
    akretschmer ist gerade online Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von gdietrich Beitrag anzeigen
    Da ich keine Chance habe auf den RANGE Wert zu warten hätte ich vielleicht doch noch eine Frage.

    Die Logik dahinter denke ich mal ist mir klar, nur an der Umsetzung in Postgres habert es noch.
    Ausgehend von meinem obigen Beispiel würde ich ja jetzt meiner Meinung nach folgendes berechnen

    Wenn die Startzeit ( 11:00 ) + Produktionsdauer ( 30:00 ) > als Schichtende ( 22:00 Uhr ) ist,
    setze Datum = Datum +1
    Produktionsende = Schichtende ( 22:00 ) - Startzeit (11:00 ) + ( Schichtende (22:00) - Schichtanfang (08:00) )
    damit hab ich dann den Tag durch und den Rest der Produktionszeit.
    Wie kann ich das verpacken, dass ich so lange weiterrechne bis das Produktionsende < dem Schichtende ist damit ich das tatsächlieche Enddatum/Zeit habe ?
    Du könntest das in eine Funktion packen. Du könntest auch z.B. mit INT-Werten für die Minuten (oder Sekunden, ich kenne Deine Zeitauflösung nicht) rechnen und dann mit numerischen Operatoren wie / und % arbeiten. Mindestens tausend Wege ...


    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  8. #8
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.056

    Standard

    Zitat Zitat von akretschmer Beitrag anzeigen
    9.2 bringt RANGE-Typen, einfach geil.
    Jetzt sag bloß das euer Hosting immer noch auf 9.1 läuft ...
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 24.11.2010, 20:15
  2. Problem bei Berechnung mit length()
    Von Klink im Forum PostGIS
    Antworten: 3
    Letzter Beitrag: 23.08.2010, 12:10
  3. Datum Interval Berechnung
    Von hretif im Forum SQL
    Antworten: 2
    Letzter Beitrag: 15.05.2007, 13:39
  4. Berechnung freier Ressourcen (z.B. Räume)
    Von achilles_69 im Forum SQL
    Antworten: 0
    Letzter Beitrag: 18.07.2006, 13:20

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum