Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

e-Renata

decode ()

Recommended Posts

PessoALL,Num comando DECODE () podemos colocar quantos campos 'default'? Digo, numa situação assim:Para cada laboratório, teremos:ENTOMOLOGIA se pr.processo = labo.processo e labo.lab = 'ENTO'- DATA DE ENTRADA labo.labodt- ACESSOS labo.nacc- LAUDO se pana.isento = 'X' então 'Ausência de insetos'Caso contrário, display ptax.taxon quando labo.labo = pana.labo e pana.nana = prade.nana e prade.ptaxno = ptax.ptaxnoouACAROLOGIA se pr.processo = labo.processo e labo.lab = 'ACAR' - DATA DE ENTRADA labo.labodt - ACESSOS labo.nacc - LAUDO se pana.isento = 'X' então 'Ausência de ácaros' Caso contrário, display ptax.taxon quando labo.labo = pana.labo e pana.nana = prade.nana e prade.ptaxno = ptax.ptaxno ouBACTERIOLOGIA se pr.processo = labo.processo e labo.lab = 'BACT' - DATA DE ENTRADA labo.labodt - ACESSOS labo.nacc - LAUDO se pana.isento = 'X' então 'Ausência de bactérias' Caso contrário, display ptax.taxon quando labo.labo = pana.labo e pana.nana = prade.nana e prade.ptaxno = ptax.ptaxno ouMICOLOGIA se pr.processo = labo.processo e labo.lab = 'MICO' - DATA DE ENTRADA labo.labodt - ACESSOS labo.nacc - LAUDO se pana.isento = 'X' então 'Ausência de fungos' Caso contrário, display ptax.taxon quando labo.labo = pana.labo e pana.nana = prade.nana e prade.ptaxno = ptax.ptaxno ouNEMATOLOGIA se pr.processo = labo.processo e labo.lab = 'NEMA' - DATA DE ENTRADA labo.labodt - ACESSOS labo.nacc - LAUDO se pana.isento = 'X' então 'Ausência de nematóides' Caso contrário, display ptax.taxon quando labo.labo = pana.labo e pana.nana = prade.nana e prade.ptaxno = ptax.ptaxno ouVIROLOGIA se pr.processo = labo.processo e labo.lab = 'VIRO' - DATA DE ENTRADA labo.labodt - ACESSOS labo.nacc - LAUDO se pana.isento = 'X' então 'Ausência de virus' Caso contrário, display ptax.taxon quando labo.labo = pana.labo e pana.nana = prade.nana e prade.ptaxno = ptax.ptaxnoserá que está certo implementar assim?decode (labo.lab, 'ENTO', 'Entomologia', pana.isento, 'X', 'Ausência de insetos', labo.labodt, labo.nacc, ptax.taxon, 'ACAR', 'Acarologia', pana.isento, 'X', 'Ausência de ácaros', labo.labodt, labo.nacc, ptax.taxon, 'BACT' , 'Bacteriologia', pana.isento, 'X', 'Ausência de bactérias', labo.labodt, labo.nacc, ptax.taxon, 'MICO' , 'Micologia', pana.isento, 'X', 'Ausência de fungos', labo.labodt, labo.nacc, ptax.taxon, 'NEMA', 'Nematologia', pana.isento, 'X', 'Ausência de nematóides', labo.labodt, labo.nacc, ptax.taxon, 'VIRO', 'Virologia', pana.isento, 'X', 'Ausência de virus', labo.labodt, labo.nacc, ptax.taxon)Se estiver errado, como é que faz? E se eu usasse o CASE, como ficaria?Grata a quem me ajudar... por favor, é urgente!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O decode só retorna um valor, para mais de um criei outro decode.

 

 

decode(cod,'ent','entomologia','mor','morfologia','outros')

 

 

pode ter um decode dentro de outro

 

 

decode(cod,1,decode(lingua,'pt','um','one'),

2,decode(lingua,'pt','dois','two'))

 

não sei bem se é isto o que você quer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Obrigada pela atenção, já terminei.

Ficou assim: usei o Oracle Reports Builder 6.0, no Assistente de Relatórios: "Agrupar acima" e o SQL:

 

select distinct

substr(pr.processo,5,4)||'/'||substr(pr.processo,1,4) as Processo, pr.procdt as Data, geo.country as País, substr(pr.tit, 1,20) as Produto, dform.ndform as Material, labo.labodt as Dt_entrada, labo.nacc as Acessos,

decode

(pr.impti, 'IM', 'Importação', 'EX', 'Exportação', 'TI', 'Trânsito Interno') as Movimentação,

decode

(labo.lab,

'ENTO', 'Entomologia',

'ACAR', 'Acarologia',

'BACT' , 'Bacteriologia',

'MICO' , 'Micologia',

'NEMA', 'Nematologia',

'VIRO', 'Virologia') as Laboratório,

case

when labo.lab = 'ENTO' and pana.isento = 'X' then 'Ausência de insetos'

when labo.lab = 'ACAR' and pana.isento = 'X' then 'Ausência de ácaros'

when labo.lab = 'BACT' and pana.isento = 'X' then 'Ausência de bactérias'

when labo.lab = 'MICO' and pana.isento = 'X' then 'Ausência de fungos'

when labo.lab = 'NEMA' and pana.isento = 'X' then 'Ausência de nematóides'

when labo.lab = 'VIRO' and pana.isento = 'X' then 'Ausência de virus'

else ptax.taxon end Laudo

from

pr, labo, lau, coop, geo, dform, pana, prade, ptax

where

lau.sepadt between : de and :ate and

pr.processo = labo.processo and

pr.processo = lau.processo and

pr.cnop = coop.cno and

coop.geono = geo.geono and

pr.dform = dform.dform and

labo.labo = pana.labo and

pana.nana = prade.nana and

prade.ptaxno = ptax.ptaxno;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.