Einzelnen Beitrag anzeigen

Sven M.

Registriert seit: 21. Okt 2006
Ort: Halle/Saale
106 Beiträge
 
Delphi 5 Enterprise
 
#1

SQL Count(*) = 0?

  Alt 20. Jul 2015, 10:19
Datenbank: Oracle • Version: 11 • Zugriff über: FireDac
Hi zusammen,
ich habe eine DB, auf deren Struktur ich keinen Einfluss habe - daher entsteht das folgende Problem überhaupt erst.

Ich habe eine Tabelle "Objects", in der alle meine Objekte mit einer ID eindeutig identifiziert werden.
Desweiteren gibt es eine Log-Tabelle mit dem Namen log$object_events, in der Statusänderungen aller(!) Objekte erfasst werden.

Nun will ich zu allen meinen Objekten wissen, wie oft ein bestimmtes Event aufgetreten ist.

Code:
select object$ID, count(Event) as DisableCount
from log$object_events
where event = 'OBJECT_DISABLED'
group by OBJECT$ID
Das funktioniert soweit ganz gut, wenn es einen entsprechenden Event-Eintrag für die ObjectID gibt. Nur will ich den Count zu allen(!) Objekt-IDs ausgegeben haben, auch wenn das Event noch nicht aufgetreten ist. Dann soll der Count halt 0 sein.
Google sagte mir, dass es da die Funktion "nvl" gibt. Nach meinem Verständnis müsste die Abfrage folgendermaßen abgeändert werden:

Code:
select object$ID, nvl(count(Event), 0) as DisableCount
from log$object_events
where event = 'OBJECT_DISABLED'
group by object$ID
Aber auch hier bekomme ich nur die Objekte geliefert, bei denen das Event schon aufgetreten ist.

Ich gehe davon aus, dass lediglich mein Brett vor dem Kopf momentan verhindert, dass ich selber drauf komme. Daher bitte ich um Beistand um mich auf den Pfad der Tugend zurückzuführen.
  Mit Zitat antworten Zitat