Instrução SQL sem usar CASE
Tenho uma aplicação aqui ainda em paradox, e preciso gerar um relatório onde a solução talvez fosse usando CASE na instrução SQL, porém como não tem case no paradox alguem poderia me dar uma sugestão de como faço isso?
A instrução SQL seria mais ou menos assim:
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:
O que poderiam me sugerir?
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
Curtidas 0
Respostas
Joaoshi
06/05/2006
Colega,
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.
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
Aerreira
06/05/2006
select ....,´- ´ as cat2 from ... where cat1 = 0
union all
select ...., ´ok´ as cat2 from... where cat1 <> 0
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
Aerreira
06/05/2006
Ninguem se habilitar a solucionar esse problema?
GOSTEI 0
Rjun
06/05/2006
Acho que com um campo calculado daria certo. Se categoria for igual a zero então ele retorna ´-´ senão retorna ´OK´.
GOSTEI 0
Aerreira
06/05/2006
Vou fazer alguns testes amanhã.
GOSTEI 0