Announcement

Collapse
No announcement yet.

Datum Zeitraum von bis auflösen.

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

  • Datum Zeitraum von bis auflösen.

    Hallo,

    ich habe eine Tabelle mit folgenden Werten:

    RaumReservierung

    Raum | Datumvon | Datumbis
    1 | 04.09.2010 | 05.09.2010
    2 | 04.09.2010 | 04.09.2010
    3 | 05.09.2010 | 07.09.2010
    .

    Ich möchte gerne eine eine SQL-Abfrage für nachfolgendes Ergebis erstellen.

    Datum | Raum
    04.09.2010 | 1
    04.09.2010 | 2
    05.09.2010 | 1
    05.09.2010 | 3
    06.09.2010 | 3
    07.09.2010 | 3

    Vielen Dank für die Unterstützung.


  • #2
    Evtl. geht es auch einfacher, ich habe einen RowGenerator für jedem Raum benutzt:
    Code:
    SELECT distinct startdat+level-1 aktdat, raum
    FROM
      (SELECT raum, startdat, (enddat-startdat+1) dauer, (max(enddat) OVER() - min(startdat) OVER ()) tage FROM
        (SELECT 1 raum, to_date(' 04.09.2010','DD.MM.YYYY') startdat, to_date(' 05.09.2010','DD.MM.YYYY') enddat FROM dual UNION ALL
         SELECT 2 raum, to_date(' 04.09.2010','DD.MM.YYYY') startdat, to_date(' 04.09.2010','DD.MM.YYYY') enddat FROM dual UNION ALL
         SELECT 3 raum, to_date(' 05.09.2010','DD.MM.YYYY') startdat, to_date(' 07.09.2010','DD.MM.YYYY') enddat FROM dual ))
    CONNECT BY LEVEL<=dauer
      ORDER BY aktdat, raum;
    
    aktdat       raum
    -------------------
    04.09.2010    1
    04.09.2010    2
    05.09.2010    1
    05.09.2010    3
    06.09.2010    3
    07.09.2010    3

    Comment

    Working...
    X