Fórum Instrução SQL sem usar CASE #320765
06/05/2006
0
A instrução SQL seria mais ou menos assim:
select a.registro, a.nome, (select b.registro from dp34a B where b.cnpj=a.cnpj and b.registro=a.registro) as cat1, case cat1 when 0 then ´-´ else ´Ok´ as cat2, from dp01a A where a.cnpj=:cnpj order by a.nome
Cujo objetivo seria identificar se existem um ou mais registros em DP34A cujo campo dp34a.registro seja igual a dp01a.registro. Caso existam um ou mais, preciso imprimir no relatório a palavra ´ok´ caso não exista nenhum registro correspondente será impresso ´-´
O relatório seria mais ou menos assim:
Nome Cat ------------------------ fulano de tal ok outro nome - outro funcionario - ze mané ok
O que poderiam me sugerir?
Aerreira
Curtir tópico
+ 0Posts
07/05/2006
Joaoshi
Você poderia utilizar dois selects
select ....,´- ´ as cat2 from ... where cat1 = 0
union all
select ...., ´ok´ as cat2 from... where cat1 <> 0
ou utilizar no DataSet o OnGetText
Se não for nada disto me desculpe.
Espero ter ajudado.
Gostei + 0
07/05/2006
Aerreira
João, ajudas são sempre bem vindas, mas não consegui compreender seu raciocinio (acho que vc tb não entendeu o meu).
Basicamente o que preciso é: listando todos os funcionários em DP01A, se houver algum registro do funcionário na tabela dp34a o campo CAT do relatório deverá ser preenchido com OK. Se não houver nenhum registro do funcionário na tabela dp34a então no relatório o campo CAT deverá ser preenchido com ´-´.
Um exemplo de conteúdo das tabelas seria:
DP01A
001 João
002 Antonio
003 Maria
004 Pedro
DP34A
002 01/02/2004
004 15/03/2005
Com os dados acima, o relatório ficaria assim:
João -
Antonio Ok
Maria -
Pedro Ok
Gostei + 0
12/05/2006
Aerreira
Gostei + 0
12/05/2006
Rjun
Gostei + 0
12/05/2006
Aerreira
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)