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-Key: 68261

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

Printed on: April 18, 2024 at 08:04 o'clock

Member: Dani
Dani Sep 10, 2007 at 08:02:12 (UTC)
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
Member: paulpanther
paulpanther Sep 10, 2007 at 09:19:02 (UTC)
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 =)
Member: pi314
pi314 Sep 14, 2007 at 16:04:52 (UTC)
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