paulpanther
Goto Top

SQL-Abfrage mit statischen Werten

Hallo liebe Forumuser,

ich hätte folgendes Anliegen an euch.
Ich besitze eine Datenbank mit einer Tabelle´(ja keine realtion usw. ...).
In dieser Tabelle gibt es eine Spalte mit dem Namen (Abteilung). Ich lasse mir dann monatlich einen Report anzeigen. Dieser Report bezieht sich immer auf den aktuellen Zeitraum. Wenn in diesem Zeitraum eine Abteilung nicht auftaucht, weil diese in diesem Monat keine Einträge vorgenommen hat, wird die Abteilung im Report auch nicht angezeigt.
Wie kann ich trotzdem alle Abteilungen statisch anzeigen lassen, wenn keine Einträge vorhanden dann halt alles Null ?

Ich hoffe ihr könnt mir helfen.

Danke.

Content-ID: 68261

Url: https://administrator.de/contentid/68261

Ausgedruckt am: 25.11.2024 um 22:11 Uhr

Dani
Dani 10.09.2007 um 10:02:12 Uhr
Goto Top
Hi paulpanther,
bevor wir hier richtig loslegen, hätte ich noch 2 Fragen:
      • Welches Datenbanksysstem verwendest du?
      • Wie sieht so einen Zeile in der Tabelle `abteilung` denn aus?


Grüße
Dani
paulpanther
paulpanther 10.09.2007 um 11:19:02 Uhr
Goto Top
hi,

also ich verwende als DBMS: Oracle 10gXE und die Tabelle Abteilung besteht aus 4 Spalten.

Abteilung | Verantwortlicher | Datum | Kommentar
| | |
| | |
| | |


Die Mitarbieter der Abteilung können monatlich Kommentare eintragen. Diese Kommentare lass ich mir immer für einen zeitraum anzeigen, über APEX. Wenn nun die Abteilung keine Kommentare diesen Monat eingefügt hat, wird diese auch beim Report nicht angezeigt, wie kann ich es realisieren, dass er mir ständig alle abteilungen (statisch eintragen) anzeigt ?

Vielen Dank =)
pi314
pi314 14.09.2007 um 18:04:52 Uhr
Goto Top
Hi,

dein Problem lässt sich mit einem OuterJoin lösen..
Du selektierst alle Abteilungen in einem InlineView und joinst diese dann
mit deinem gewünschten Zeitraum mit einem OuterJoin.
So tauchen dann alle Abteilungen in der Ergebnismenge auf,
auch wenn sie bei deinem "normalen" Select über das Datum nicht auftauchen

SELECT * 
  FROM table t1, 
            ( SELECT DISTINCT abteilung 
                  FROM table ) abt
 WHERE t1.datum BETWEEN :vondat AND :bisdat
      AND t1.abteilung (+) = abt.abteilung

Gruß,
pi