Hallo,
ich habe folgende Abfrage und Ergebnis:
Es gibt nun eine zusätzlich Tabelle 'Ferien' die wie folgt aussieht:
In der Tabelle Data wird das Datneu über das Datum und einer Addition von 41min gerechnet!
Das soll auch weiter passieren nur die Zeiträume aus 'Ferien' sollen nach unten verschoben werden!
Also würde meine neue Tabelle ab 17.06 14:00 alle Zeiten danach bis 16:00 nach unten verschieben und dann ab hier weiterrechnen!
Wie könnte hier die Lösung aussehen??
Gruß
ich habe folgende Abfrage und Ergebnis:
Code:
WITH data AS (SELECT 80 nr, 39 id, to_date('17.06.2013 12:01','DD.MM.YYYY HH24:MI') datum FROM dual UNION ALL SELECT 81 , 51 , NULL FROM dual UNION ALL SELECT 82 , 14 , NULL FROM dual UNION ALL SELECT 83 , 4 , NULL FROM dual UNION ALL SELECT 84 , 4 , NULL FROM dual UNION ALL SELECT 85 , 38 , NULL FROM dual UNION ALL SELECT 86 , 27 , NULL FROM dual UNION ALL SELECT 87 , 27 , NULL FROM dual) SELECT nr, id, datum, row_number() OVER (ORDER BY nr) rownr, min(datum) OVER (ORDER BY 1) mindat, min(datum) OVER (ORDER BY 1) + (row_number() OVER (ORDER BY nr)-1) * 41/24/60 datneu FROM data ORDER BY nr; nr id datum rownr mindat datneu ------------------------------------------------------------------------------------- 80 39 17.06.2013 12:01:00 1 17.06.2013 12:01:00 17.06.2013 12:01:00 81 51 2 17.06.2013 12:01:00 17.06.2013 12:42:00 82 14 3 17.06.2013 12:01:00 17.06.2013 13:23:00 83 4 4 17.06.2013 12:01:00 17.06.2013 14:04:00 84 4 5 17.06.2013 12:01:00 17.06.2013 14:45:00 85 38 6 17.06.2013 12:01:00 17.06.2013 15:26:00 86 27 7 17.06.2013 12:01:00 17.06.2013 16:07:00 87 27 8 17.06.2013 12:01:00 17.06.2013 16:48:00
Es gibt nun eine zusätzlich Tabelle 'Ferien' die wie folgt aussieht:
Code:
von bis ------------------------------------------------------------------------------------- 01.06.2013 06:00:00 01.06.2013 12:00:00 05.06.2013 06:00:00 05.06.2013 12:00:00 17.06.2013 14:00:00 17.06.2013 16:00:00 24.06.2013 14:00:00 24.06.2013 16:00:00
Das soll auch weiter passieren nur die Zeiträume aus 'Ferien' sollen nach unten verschoben werden!
Also würde meine neue Tabelle ab 17.06 14:00 alle Zeiten danach bis 16:00 nach unten verschieben und dann ab hier weiterrechnen!
Code:
nr id datum rownr mindat datneu
-------------------------------------------------------------------------------------
80 39 17.06.2013 12:01:00 1 17.06.2013 12:01:00 17.06.2013 12:01:00
81 51 2 17.06.2013 12:01:00 17.06.2013 12:42:00
82 14 3 17.06.2013 12:01:00 17.06.2013 13:23:00
83 4 4 17.06.2013 12:01:00 17.06.2013 17:02:00
84 4 5 17.06.2013 12:01:00 17.06.2013 14:45:00
85 38 6 17.06.2013 12:01:00 17.06.2013 15:26:00
86 27 7 17.06.2013 12:01:00 17.06.2013 16:07:00
87 27 8 17.06.2013 12:01:00 17.06.2013 16:48:00
Gruß
Comment