Vraag : Oracle 9i SQL decodeert

Hallo die,

I am schrijft het proberen SQL op de volgende voorwaarde wordt gebaseerd:

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

The die ik heb willen om op bovengenoemde SQL doen ben:

If bovengenoemde SQL keert „eerst“ enkel één verslag voor terug en voor „tweede“, wil ik slechts het verslag tonen die „eerst“, dit bevatten ik kan krijgen door MIN functie in te gebruiken decodeer, dat is:
min (decodeer (a.cat, „007“, „first“, '008 ' , „seconde“, '')) als cat_type, zal ik enkel het verslag „eerst“ bevattend krijgen.
But, als het terugkeert, zou meer dan één verslag voor „de eerste“ of „tweede“ dan het moeten terugkeren aangezien het is.
For b.v.:
ID F_Name L_Name cat_type date_1
1 john Smith eerste 02/01/2010
1 john Smith eerste 14/04/2010
1 john Smith tweede 05/03/2010
2 .......................... .....
.......................... .....
.......................... .....
or

ID F_Name L_Name cat_type date_1
1 john Smith eerste 02/14/2010
1 john Smith tweede 04/16/2010
1 john Smith tweede 02/19/2010
.......................... .....
.......................... .....
or

ID F_Name L_Name cat_type date_1
1 john Smith eerste 02/17/2010
1 john Smith eerste 01/19/2010
1 john Smith tweede 03/20/2010
1 john Smith tweede 02/28/2010
.......................... .......... .......... .......... ......
.......................... .....

so op zo vooruit.

I wil iets als doen:

(COMPUTER-AIDED SOFTWARE ENGINEERING WANNEER ((a.cat = „007“ EN TELLING (a.cat) > 1)
OF (a.cat = „008“ EN TELLING (a.cat) > 1)) THEN
decodeert (a.cat, „007“, 'first'< wbr/>, „008“, „second“, '')
ANDERS min (decodeer (a.cat, „007“, „first“, '008 ' , „seconde“, ''))
END
) als cat_type

But dit niet. behoorlijk werkt.
Can somebody stelt een methode voor om dit op te lossen?

Thanks@
Related Oplossingen: Oracle SQL -- WAAR NIET CLAUSE

Antwoord : Oracle 9i SQL decodeert

om het eenvoudiger te maken, allen u bent onderstaand ik denkt wenst. Het veroorzaakt zelfde resultaten zoals aangetoond in screenshat die ik reeds. vastmaakte. wij wensen toevoegings geen groep door etc….

Probeer dit en kies welke ooit u wilt.

selecteer *
van (
          SELECTEER X.*,
          TELLING (DECODEER (X.C_TYPE, „PRIMAIR“, ONGELDIGE 1,)) OVER (VERDELING DOOR X.ID) PRIM_CNT,
          TELLING (DECODEER (X.C_TYPE, „AANVANKELIJK“, ONGELDIGE 1,)) OVER (VERDELING DOOR X.ID) INIT_CNT
                          VAN
                                (UITGEZOCHTE T1.ID, T1.NAME, T1.DESCRP, T2.C_DESC,
                                decodeer (T2.C_ID, „007“, „PRIMAIR“, „008“, „AANVANKELIJK“, '') als C_TYPE
                                VAN T1 van de TEST, T2 TEST2
                                WAAR
                                T1.ID = T2.ID
                                ) X
          groep door x.ID, x.NAME, x.DESCRP, x.c_desc, x.C_TYPE) A
waar niet (a.prim_cnt =1 en a.init_cnt = 1 en c_type='PRIMARY)

Dank
Andere oplossingen  
 
programming4us programming4us