2009-05-13 8 views
0

Ich versuche, die Gesamtzahl der Zeilen in einer Tabelle namens ZEICHNEN mit der folgenden Abfrage zu berechnen: Wählen Sie Feld, Plattform, Anzahl (doc_id) als Summe aus Zeichnungsgruppe nach Feld, Plattform;Anzeigen mehrerer Summen in einer Tabelle von Oracle

aber ich muss auch für jede Plattform

SQL die insgesamt Anhänge/nicht-Anhänge anzuzeigen:

Auswahlfeld, Plattform, count (doc_id) als angebracht von der Zeichnung, wo file_bin nicht null Gruppe nach Feld, Plattform;

Wählen Sie Feld, Plattform, Anzahl (doc_id) als non_attached aus der Zeichnung, wo file_bin Null ist, Gruppe für Feld, Plattform;

Gibt es eine Möglichkeit, die 3 Werte in einer Ansicht zu kombinieren? beispiels Field, Plattform, Total, Befestigt, Non_attached

Antwort

1

Versuchen Sie folgendes:

select 
    field, 
    platform, 
    count(doc_id) as total, 
    sum(iif(file_bin is null, 1, 0)) as attached, 
    sum(iif(file_bin is not null, 1, 0)) as non_attached 
from drawing 
where doc_id is not null 
group by field, platform 
+0

Summe (IIF (file_bin ist null, 1, 0)) als angebracht, * FEHLER bei Zeile 5: ORA-00907: fehlende rechte Klammer Ich muss etwas verpasst haben, können Sie klären? danke –

0

dank Douglas Tosi Vorschlag, ich schaffte es, anstatt den Fall Methode zu verwenden.

Auswahlfeld, Plattform count (doc_id) als Gesamt, Sum (CASE WHEN file_bin null ist, dann 1 WHEN file_bin nicht null ist THEN 0 END) so angebracht ist, Sum (CASE WHEN file_bin wie null THEN 0 WHEN file_bin nicht null, dann 1 END ist) von der Zeichnung non_attached wo doc_id nicht null Gruppe von Feld ist, platform

perfect !!

Thanks again Douglas

0

ich dekodieren statt Fall verwenden würde, nicht wissen, was zu besseren Ergebnissen führt (nicht getestet):

select field 
,  platform 
,  count(doc_id) as total 
,  sum(decode(file_bin,null,1,0)) attached 
,  sum(decode(file_bin,null,0,1)) non_attached 
from drawing 
where doc_id is not null 
group by field,platform 
+0

Ich habe auf einigen Pfosten gesucht und gefunden, dass Entschlüsselung die gleiche Leistung wie Fall hat. Decode wäre ganz gut für meinen Tisch, danke. Der Fall hat jedoch einen Vorteil für SQL-Anweisungen, die geschachtelte bedingte Anweisungen benötigen –

Verwandte Themen