Bom Dia
Se alguém puder ajudar, eu agradeço
Preciso fazer um decode, dentro de uma where, com varias validações
algo parecido com isso
1º Tenho uma lista de 6 pessoas físicas
que possui vários valores, que chamo de X, cada pessoa fisica tem 10 valores x
2º tenho uma pessoa fisica - que vai ser ligado aos 6 da 1º situação
essa pessoa fisica possui varios valores, que chamo de y1 até o y10.
Situaçao:
Os valores do X nunca pode ser igual aos do y1-y10.
Quando for igual não pode trazer a pessoa fisica.
alguém sabe como eu posso fazer isso?
Obrigada
Decode para varias verificações
-
- Rank: DBA Pleno
- Mensagens: 297
- Registrado em: Ter, 21 Dez 2010 8:45 am
- Localização: Florianopolis
select pra.cd_pessoafisica, r.cd_pessoafisica
from( select pf.cd_pessoafisica,
y1 A1,
y2 A2,
y3 B1,
y4 B2,
y5 DRBI2,
y6 DRB1,
y7 DRB2,
y8 CW1,
y9 CW2,
y10 BW1,
y11 BW2
from pessoa_fisica pF
where pf.cd_pessoafisica = :parametro)r,
(select pra.cd_pra , pra.vl_pra,pf.cd_pessoafisica
from pra pra,
resultado re,
pessoa_fisica pf
where re.nr_requisicao = :parametero.nr
and pf.cd_pessoafisica = re.cd_pessoafisica)pra
where (decode(pra.vl_pra,greatest(pra.vl_pra,:p_vl_mfi),pra.cd_pra) = pra.cd_pra
and pra.cd_pra not in r.A1
and pra.cd_pra not in r.A2
and pra.cd_pra not in r.B1
and pra.cd_pra not in r.B2
and pra.cd_pra not in r.DRBI1
and pra.cd_pra not in r.DRBI2
and pra.cd_pra not in r.DRB1
and pra.cd_pra not in r.DRB2
and pra.cd_pra not in r.CW1
and pra.cd_pra not in r.CW2
and pra.cd_pra not in r.BW1
and pra.cd_pra not in r.BW2)
Obrigada
-
- Moderador
- Mensagens: 641
- Registrado em: Seg, 03 Set 2007 3:26 pm
- Localização: Fortaleza - CE
att,
Daniel N.N.
Daniel N.N.
Cara, ainda não compreendi 100%. Seria bom ter exemplos de dados das tabelas.
Qual problema deste select atual??
Até onde estou entendendo talvez seria bom utilizar um not "exists".
Qual problema deste select atual??
Até onde estou entendendo talvez seria bom utilizar um not "exists".
-
- Rank: DBA Pleno
- Mensagens: 297
- Registrado em: Ter, 21 Dez 2010 8:45 am
- Localização: Florianopolis
Lá vão os exemplos
valores x das 6 pf
as pf 123 e 1235 não poderiam aparecer no select, porque a pf principal tem um valor igual ao deles.
not "exists"? no proprio decode?
valores x das 6 pf
X pf
ab22 123
ver 1234
ab33 456
rd22 4568
c11 4567
ab22 1235
Valor do y da pf principal
A1 -- ab22
A2 -- cw
B1 -- b
B2 -- w
DRBI2 - cdw
DRB1 - pow
DRB2 - pow2
CW1 - pde
CW2 - pder
BW1 - 123
BW2 - 24
not "exists"? no proprio decode?
-
- Moderador
- Mensagens: 641
- Registrado em: Seg, 03 Set 2007 3:26 pm
- Localização: Fortaleza - CE
att,
Daniel N.N.
Daniel N.N.
Considerando os dados que você falou e pelo que entendi, poderia ser algo assim:
select *
from pf_menor pm
where not exists (select 1
from pf_princial pp
where pp.y1 = pm.x
or pp.y2 = pm.x
...
or pp.y10 = pm.x)
-
- Rank: Programador Sênior
- Mensagens: 54
- Registrado em: Sex, 27 Jan 2012 8:16 am
- Localização: Londres UK
Olá pessoal, estou fazendo um sql e empaquei no decode, alguém poderia me esclarecer porque ele não funciona desta forma:
Deve ser coisa simples, mas meu conhecimento básico inicial não está me ajudando.Se alguém puder postar a código com a sintaxe correta, agradeço!!
Obrigada !! =)
and decode (:tipo, 'NASCIDO', to_char(dt_nasc,'mm') = :p_mês,
'ADMITIDO', to_char(a.dt_admissao,'mm') = :p_mês)
Obrigada !! =)
-
- Rank: DBA Pleno
- Mensagens: 297
- Registrado em: Ter, 21 Dez 2010 8:45 am
- Localização: Florianopolis
Bom, acho q deveria fazer outro post. :)
Mais na minha opinião o que está errado seria isso.
São duas coisas.
deixa pra igualar o :p_mês, só no final.
você deveria fazer um extract para selecionar o mês,
extract(month from dt_nasc)
ex:
Se alguém puder me ajudar com o meu post também, iria agradecer muito. :)
Mais na minha opinião o que está errado seria isso.
São duas coisas.
deixa pra igualar o :p_mês, só no final.
você deveria fazer um extract para selecionar o mês,
extract(month from dt_nasc)
ex:
where decode(:tipo, 'NASCIDO', extract(month from dt_nasc),'ADMITIDO',extract(month from A.DT_ADMISSAO))
= :P_mês
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 11 visitantes