Pergunta : Oracle 9i SQL descodifica

Olá!, a tentativa do

I am escreve um SQL baseado na seguinte circunstância: o

select
a.id, f_name do
a.col2, L-nome do
b.col3,
c.v_date date_1,
decode (a.cat, “007”, 'wbr/> do first'<, “008”, “second”, '') como o
from a do cat_type
....., b, c,… mudança que do

The do
where
...... eu quero fazer no SQL acima é: o

If o SQL acima retorna apenas um registro para “primeiramente” e um para “em segundo”, eu quero indicar somente o registro que contem “primeiramente”, isto que eu posso começ perto using a função MÍNIMA na descodificação, que é:
min (descodificar (a.cat, “007”, “first”, '008 ' , “em segundo”, '')) como o cat_type, eu começ apenas o registro que contem “primeiramente”. o
But, se retorna, mais de um registro para o “primeiro” ou “em segundo” então deve retornar como ele is.
For por exemplo: smith primeiro 01/19/2010
1 john do smith primeiro 02/17/2010
1 john do cat_type date_1
1 john do or

ID F_Name L_Name do
do do
do em segundo 02/19/2010
em segundo 04/16/2010
1 john do smith primeiro 02/14/2010
1 john do cat_type date_1
1 john do
or

ID F_Name L_Name do do
do do
do em segundo 05/03/2010
2 do smith primeiro 14/04/2010
1 john do smith do
do do do do em segundo 02/28/2010
em segundo 03/20/2010
1 john do primeiro 02/01/2010
1 john do cat_type date_1
1 john do
ID F_Name L_Name do smith .......................... ..... .......................... ..... .......................... ..... do smith do smith .......................... ..... .......................... ..... do smith do smith .......................... .......... .......... .......... ...... ...............................

so sobre tão adiante. o

I quer fazer algo como: o
do

(CASO QUANDO ((a.cat = “007” E CONTAGEM (a.cat) > 1) OU (a.cat = “008” E CONTAGEM (a.cat) > 1)) THEN
descodifica (a.cat, “007”, 'wbr/> do first'<, “008”, “second”, '') o
END
do minuto do
(descodificar (a.cat, “007”, “first”, '008 ' , “em segundo”, ''))) como o cat_type

But que isto não está trabalhando corretamente. o
Can alguém sugere um método para resolver este?

Thanks@
class= > " desobstruído " do
soluções >Related class= href= " /Database/Oracle/9.x/Q_26324081.html " title= " Oracle SQL do Oracle SQL " do qRelatedChild " do " class= NÃO da CLÁUSULA -- ONDE NÃO CLAUSE

Resposta : Oracle 9i SQL descodifica

para fazê-lo ainda mais simples, tudo que você precisa é o below mim pensa. Produz os mesmos resultados segundo as indicações do screenshat que eu já uni. nós não precisamos o grupo da adição por etc….

Tentar isto e escolhê-lo que nunca você quer.

selecionar *
de (
          SELECIONAR X.*,
          CONTAGEM (DESCODIFICAR (X.C_TYPE, “PRELIMINAR”, 1, o zero)) SOBRE (DIVISÓRIA POR X.ID) PRIM_CNT,
          CONTAGEM (DESCODIFICAR (X.C_TYPE, “INICIAL”, 1, o zero)) SOBRE (DIVISÓRIA POR X.ID) INIT_CNT
                          DE
                                (T1.ID SELETO, T1.NAME, T1.DESCRP, t2.c_desc,
                                descodificar (T2.C_ID, “007”, “PRELIMINAR”, “008”, “INICIAL”, '') como C_TYPE
                                Do T1 do TESTE, T2 TEST2
                                ONDE
                                T1.ID = T2.ID
                                ) X
          grupo por x.ID, por x.NAME, por x.DESCRP, por x.c_desc, por x.C_TYPE) A
onde não (a.prim_cnt =1 e a.init_cnt = 1 e c_type='PRIMARY)

Obrigado
Outras soluções  
 
programming4us programming4us