Array
(
)

Problemas com NULL

R1c4rd0j3sus
   - 02 abr 2008

Bom dia pessoal, estou com uma dúvida aqui... Fiz este select, bem básico, porém não estou conseguindo fazer com que o meu CASE, quando NULL, retorne indefinido...
Se alguem puder me ajudar, obrigado.

select a.demonstrativo_grupo_id, a.demonstrativo_conta_id, a.nota, a.fornecedor_id,
a.natoper_id, a.seqoper_id, a.data_emissao, a.tiponota_id, a.icms_valor,
a.ipi_valor, a.nota_valor, d.descricao,
(select case b.descricao when null then ´INDEFINIDO´ else b.descricao end
from demonstrativo_conta b where b.empresa_id = a.empresa_id
and b.grupo_id = a.demonstrativo_grupo_id
and b.conta_id = a.demonstrativo_conta_id),
(select case when c.descricao is null then ´INDEFINIDO´ else c.descricao end
from demonstrativo_grupo c where c.empresa_id = a.empresa_id
and c.grupo_id = a.demonstrativo_grupo_id)
from nota_compra a
left join tipo_nota d on d.empresa_id = a.empresa_id
and d.tiponota_id = a.tiponota_id
where a.empresa_id = 1
and a.data_emissao between ´2004-01-01´ and ´2012-01-01´

Muito obrigado,

Ricardo

Emerson
   - 03 abr 2008

tente assim:

#Código

select
  a.demonstrativo_grupo_id, a.demonstrativo_conta_id,
  a.nota, a.fornecedor_id, a.natoper_id, a.seqoper_id,
  a.data_emissao, a.tiponota_id, a.icms_valor,
  a.ipi_valor, a.nota_valor, d.descricao,
  (case when b.descricao is null
        then ´INDEFINIDO´
        else b.descricao end) descricao_conta,

  (case when c.descricao is null
        then ´INDEFINIDO´
        else c.descricao end) descricao_grupo
from
  nota_compra a
left join
  demonstrativo_conta b on b.empresa_id = a.empresa_id
    and b.grupo_id = a.demonstrativo_grupo_id
    and b.conta_id = a.demonstrativo_conta_id
left join
  demonstrativo_grupo c on c.empresa_id = a.empresa_id
    and c.grupo_id = a.demonstrativo_grupo_id
left join
  tipo_nota d on d.empresa_id = a.empresa_id
    and d.tiponota_id = a.tiponota_id
where
  a.empresa_id = 1
  and a.data_emissao between ´2004-01-01´ and ´2012-01-01´ 


R1c4rd0j3sus
   - 03 abr 2008

Muito obrigado,
funcionou!