CONDICAO NA SELECT

USUARIO.EXCLUIDOS 20/07/2005 16:23:18
#95211
Tenho o seguinte select: (EX)
set temp = conxao.Execute("Select dados FROM tabela") 


e depois jogo num relatorio:
set rel.dataSource = temp 


Até ai beleza, o problema é, como criar uma condição nesse select, por exemplo
Se dados for vazio, mostra "OI" senão mostra o que está na tabela, mas isso sem ter q passar por todas as linhas .... a ideia é fazer direto no select.
LREZANI 20/07/2005 16:28:43
#95213
é mais fácil você criar esta fórmula no Crystal então...
USUARIO.EXCLUIDOS 20/07/2005 16:28:58
#95214
se for no sql server

select case when dados is null or dados = ''
then 'OI'
else dados
end

se for em outro...num sei não
USUARIO.EXCLUIDOS 20/07/2005 16:30:41
#95215
Esse do sql server seria na string do select ?????
USUARIO.EXCLUIDOS 20/07/2005 16:33:07
#95216
sim..

set temp = conxao.Execute("select case when dados is null or dados = '' then 'OI' else dados end ")
USUARIO.EXCLUIDOS 20/07/2005 16:35:39
#95217
a ta .... e se o banco de dados for do access? Funciona tambem ?
USUARIO.EXCLUIDOS 20/07/2005 17:00:03
#95223
a questão é, se voce tem algo assim
tabela cliente
campos nome, endereco, cidade
se o campo cidade estiver vazio, então o relatorio sera preenchido com
jose, rua tal de tal, Oi(oi porque esta vazio)
então isto devera ser feito atraves de uma formula dentro do proprio crystal, e não em um consulta SQL, se o que você quer não é isto então explique melhor.
USUARIO.EXCLUIDOS 20/07/2005 17:03:57
#95224
complementando, se voce for fazer isto em um consulta SQL, depois de carregado o recordset, voce teria que fazer um loop para alterar o campo de todos os registros no recordset para,
do WHile Not RS.Eof
if rs("nomedocampo") = "" then rs("nomedocampo") = "'OI'"
rs.movenext
loop
e isto poderia demandar muito tempo, e isto o crystal faz com os pes na costa.
USUARIO.EXCLUIDOS 20/07/2005 17:07:56
#95225
Willian, entendi seu ponto de vista..mas voi discordar de vc no quesito de "DEVE ser feito no crystal"...acho que isso vai da facilidade da pessoa com relação a ferramenta.
Nos meus relatorios eu raramente uso formulas do crystal(exceto pra exibição de constantes e formatção de valor)...de resto eu nas minhas stored procedures já deixo tudo como quero que seja exibido, justamente por ter mais facilidade com o sql server.
USUARIO.EXCLUIDOS 20/07/2005 17:31:43
#95230
tambem concordo com você, e o que coloco é que em alguns casos haveria a necessidade de ter um campo a mais no bd só para exibir uma mensagem, digamos o seguinte, voce esta emitindo uma mensalidade na qual tem o valor do mes bem como debito anterior, e digamos que o emitente da mensalidade quer que apareça uma frase:

prezado cliente, consta debito anterior, favor entrar em contato.
com uma formula no crystal
se tabela.campo maior que zero(ou seja, tem debito) anterior
então a de consta debito nao sera suprimida,
com isto economizamos enxugamos o banco, e não a necessidade de fazer loops enormes o que demandaria mais tempo, o que eu entendi é que ele queria fazer algo do tipo, se não for, o seu ponto de vista deve ser apreciado por ele
USUARIO.EXCLUIDOS 20/07/2005 17:35:40
#95232
onde
então a de consta debito nao sera suprimida,
leia - se
então a mensagem de consta debito, não será suprimida,
Página 1 de 2 [16 registro(s)]
Tópico encerrado , respostas não são mais permitidas