Frage : Oracle 9i SQL decodieren

Hallo,

I morgens schreiben das Versuchen einen SQL, der auf der folgenden Bedingung basiert:

select
a.id,
a.col2 f_name,
b.col3 L-Name,
c.v_date date_1,
decode (a.cat, „007“, 'first'< wbr/>, „008“, „second“, '') als cat_type
.....
from a, b, c,…
where
......

The Änderung, die ich auf dem oben genannten SQL tun möchte, ist:

If der oben genannte SQL zurückbringt gerade eine Aufzeichnung für „zuerst“ zuerst und eine für „an zweiter Stelle“, möchte ich die „zuerst“ enthaltene Aufzeichnung anzeigen nur, dieses, das ich using MINIMALE Funktion in der Decodierung vorbei erhalten kann, die ist:
min (decodieren (a.cat, „007“, „first“, '008 ' , „an zweiter Stelle“, '')) als cat_type erhalte ich gerade die „zuerst“ enthaltene Aufzeichnung.
But, wenn es zurückgeht, mehr als eine Aufzeichnung für die „erste“ oder „an zweiter Stelle“ dann sollte sie als sie is.
For z.B. zurückbringen:
ID F_Name L_Name cat_type date_1
1 John Smith erster 02/01/2010
1 John Smith erster 14/04/2010
1 John Smith an zweiter Stelle 05/03/2010
2 .......................... .....
.......................... .....
.......................... .....
or

ID F_Name L_Name cat_type date_1
1 John Smith erster 02/14/2010
1 John Smith an zweiter Stelle 04/16/2010
1 John Smith an zweiter Stelle 02/19/2010
.......................... .....
.......................... .....
or

ID F_Name L_Name cat_type date_1
1 John Smith erster 02/17/2010
1 John Smith erstes 01/19/2010
1 John Smith an zweiter Stelle 03/20/2010
1 John Smith an zweiter Stelle 02/28/2010
.......................... .......... .......... .......... ......
.......................... .....

so an so weiter.

I möchten etwas wie tun:

(FALL WENN ((a.cat = „007“ UND ZÄHLIMPULS (a.cat) > 1)
ODER (a.cat = „008“ UND ZÄHLIMPULS (a.cat) > 1)) THEN
decodieren (a.cat, „007“, 'first'< wbr/>, „008“, „second“, '')
SONST Minute (decodieren (a.cat, „007“, „first“, '008 ' , „an zweiter Stelle“, '')),
END
), wie cat_type

But, das dieses nicht richtig. bearbeitet.
Can jemand vorschlagen eine Methode nd, um dieses zu lösen?

Thanks@
Related Lösungen: Oracle SQL -- WO NICHT CLAUSE

Antwort : Oracle 9i SQL decodieren

um es sogar einfach zu bilden, ist alles, das Sie benötigen ich denken below. Es liefert die gleichen Resultate wie in dem screenshat gezeigt, das ich bereits. anbrachte. wir benötigen Zusatzgruppe nicht durch ETC….

Dieses versuchen und wählen, das überhaupt Sie wünschen.

vorwählen *
von (
          X.* VORWÄHLEN,
          ZÄHLIMPULS (DECODIEREN (X.C_TYPE, „PRIMÄR“, 1, Null)) ÜBER (FACH DURCH X.ID) PRIM_CNT,
          ZÄHLIMPULS (DECODIEREN (X.C_TYPE, „INITIALE“, 1, Null)) ÜBER (FACH DURCH X.ID) INIT_CNT
                          VON
                                (AUSERWÄHLTES T1.ID, T1.NAME, T1.DESCRP, t2.c_desc,
                                (T2.C_ID, „007“, „PRIMÄR“, „008“, „INITIALE“, '') als C_TYPE decodieren
                                VON TEST T1 T2 TEST2
                                WO
                                T1.ID = T2.ID
                                ) X
          Gruppe durch x.ID, x.NAME, x.DESCRP, x.c_desc, x.C_TYPE) A
wo nicht (a.prim_cnt =1 und a.init_cnt = 1 und c_type='PRIMARY)

Danke
Weitere Lösungen  
 
programming4us programming4us