Fråga : Oracle 9i SQL avkoda

Hi den pröva förmiddagen för

I skriver en SQL som efter baseras på villkora:

select
a.id, f_name för
a.col2,
b.col3 L-namnger,
c.v_date date_1,
decode (a.cat, ”007”, 'first', ”008”, ”second”, '') som
from a, b, c för cat_type
.....,… ändring för

The för
where
...... som jag önskar att göra på den ovannämnda SQLEN är:

If den ovannämnda SQLEN går precis ett rekord för ”först tillbaka”, och man för ”understöder”, mig önskar att visa endast rekordet som ”först” innehåller, detta som jag kan få by using MINUT fungerar i avkodningen, som är:
min (avkoda (a.cat, ”007”, ”first”, '008 ' , ”understöder”, '')), som cat_type jag ska får precis rekordet som ”först” innehåller.
But, om den går tillbaka, mer än ett rekord för ”första” eller ”understöder” därefter det bör gå som den is.
For tillbaka eg.: smeden för den första 02/01/2010
1 john för cat_type date_1
1 john för
ID F_Name L_Name för smeden den första 14/04/2010
1 john smeden understöder smeden första 02/14/2010
1 john för cat_type date_1
1 john för
or

ID F_Name L_Name för för
för för
för för 05/03/2010
2 .......................... ..... .......................... ..... .......................... ..... som smeden understöder 04/16/2010
1 john, smeden understöder för 02/19/2010
.......................... för ..... för
.......................... för ..... för
för or

ID F_Name L_Name för cat_type date_1
1 john den första 02/17/2010
1 john smeden första 01/19/2010
1 john för smeden, smeden understöder 03/20/2010
1 john, smeden understöder för
för för för för för 02/28/2010
.......................... .......... .......... .......... ...... ...............................

so på så framåt.

I önskar att göra något som är lik:
för

(FALL NÄR ((a.cat = ”007” OCH RÄKNINGEN (a.cat) > 1) ELLER (a.cat = ”008” OCH RÄKNINGEN (a.cat) > 1)) THEN
avkoda (a.cat, ”007”, 'first', ”008”, ”second”, '')
END
för minuten för
ANNAN (avkoda (a.cat, ”007”, ”first”, '008 ' , ”understöder”, ''),),), som cat_type

But detta inte är funktionsduglig riktigt.
Can någon föreslår en metod för att lösa denna?

Thanks@
Related lösningar för class= ":

Svar : Oracle 9i SQL avkoda

att göra det även enklare, allt som du behöver, är den nedanföra I-funderare. Det producerar samma resultat som visade i screenshaten vilket jag fäste redan. vi behöver inte tilläggsgruppen vid etc.…,

Försök detta och väljer som du önskar någonsin.

välj *
från (
          VÄLJ X.*,
          RÄKNING (AVKODA (X.C_TYPE, ”PRIMÄRT”, 1 som, är ogiltiga)) ÖVER (DELNING VID X.ID) PRIM_CNT,
          RÄKNING (AVKODA (X.C_TYPE, ”MÄRKA MED SINA INITIALER”, 1 som, är ogiltiga)), ÖVER (DELNING VID X.ID) INIT_CNT
                          FRÅN
                                (VALD T1.ID, T1.NAME, T1.DESCRP, t2.c_desc,
                                avkoda (T2.C_ID, ”007”, ”PRIMÄRT”, ”008”, ”MÄRKA MED SINA INITIALER”, ''), som C_TYPE
                                FRÅN TESTA T1, T2 TEST2
                                VAR
                                T1.ID = T2.ID
                                ) X
          grupp vid x.ID, x.NAME, x.DESCRP, x.c_desc, x.C_TYPE) A
var inte (a.prim_cnt =1 och a.init_cnt = 1 och c_type='PRIMARY)

Tack
Andra lösningar  
 
programming4us programming4us