Ir para conteúdo

Arquivado

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

emersonandree

comando REPLACE

Recommended Posts

Não funciona assim , replace troca uma string por outra, para tratar nulos use o comando NVL.

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao usei o seguinte

nvl(ma.descricaomarcamat,'Peça Original de Fabrica' )

mas mesmo assim ficou null nao trocou no trazer a informação


lembrando que esta informação vem de um SUBSELECT


usei outra opção, mas me deu o erro: valores demais

DECODE(ma.descricaomarcamat,null,'Peça Original de Fabrica',ma.descricaomarcamat)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lembre que branco é diferente de null

 

Use o TRIM

nvl(trim(ma.descricaomarcamat),'Peça Original de Fabrica' )

Compartilhar este post


Link para o post
Compartilhar em outros sites

continua aparecendo null no campo!

vou postar o subselect aqui

 select
          nvl(trim(ma.descricaomarcamat),'Peça Original de Fabrica' )  || ' / ' || max(ar.DATARQ) || ' / ' || max(ai.NUMERORQ)
          
      from
          est_requisicao ar,
          est_itensrequisicao ai,
          est_marcamaterial ma
      where
          ai.codigomarcamat = ma.codigomarcamat and
          ai.numerorq not in (
                          select
                          ic.nrrqcan
                          from
                          est_itensrequisicaocan ic
                          where
                          ic.seqitreq = ai.seqitreq and
                          ic.codigomarcamat = ai.codigomarcamat and
                          ic.codigolocal = ai.codigolocal and
                          ic.codigomatint = ai.codigomatint and
                          ic.nrrqcan = ar.numerorq
                      ) and
                      ai.codposmat = i.codposmat and
                      ai.codigomatint = i.codigomatint and
                      ar.numerorq = ai.numerorq and
                      ar.codigoveic = r.codigoveic and
                      ar.datarq > '01-jan-2007' and
                      ar.datarq < r.datarq and
                      ROWNUM = 1
    group by
      ma.descricaomarcamat
      ) ultima

Compartilhar este post


Link para o post
Compartilhar em outros sites

ar.DATARQ) e/ou ai.NUMERORQ

 

devem estar nulas

 

rode

select
          *
      from
          est_requisicao ar,
          est_itensrequisicao ai,
          est_marcamaterial ma
      where
          ai.codigomarcamat = ma.codigomarcamat and
          ai.numerorq not in (
                          select
                          ic.nrrqcan
                          from
                          est_itensrequisicaocan ic
                          where
                          ic.seqitreq = ai.seqitreq and
                          ic.codigomarcamat = ai.codigomarcamat and
                          ic.codigolocal = ai.codigolocal and
                          ic.codigomatint = ai.codigomatint and
                          ic.nrrqcan = ar.numerorq
                      ) and
                      ai.codposmat = i.codposmat and
                      ai.codigomatint = i.codigomatint and
                      ar.numerorq = ai.numerorq and
                      ar.codigoveic = r.codigoveic and
                      ar.datarq > '01-jan-2007' and
                      ar.datarq < r.datarq and
                      ROWNUM = 1
    
      ) ultima

e veja o que retorna

Compartilhar este post


Link para o post
Compartilhar em outros sites

então eles estão nulas sim em alguns casos... se eu rodo todo meu scrypt certinho ele retorna 10 linhas com as marcas das peças normal e 10 com a marca nula pq não havia requisição anterior

 

 

ai que esta essas que nao haviam eu quero que me retorne original do veiculo

Compartilhar este post


Link para o post
Compartilhar em outros sites
então eles estão nulas sim em alguns casos...

1) Você pode fazer

select
          nvl(trim(ma.descricaomarcamat),'Peça Original de Fabrica' )  || ' / ' || 
          nv(max(ar.DATARQ),' ') || ' / ' || 
          nv(max(ai.NUMERORQ),' ')
          
      from
ai que esta essas que nao haviam eu quero que me retorne original do veiculo

 

 

 

Nestes casos faça um outer join

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.