CONDICAO NA SELECT
Tenho o seguinte select: (EX)
e depois jogo num relatorio:
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.
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.
é mais fácil você criar esta fórmula no Crystal então...
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
select case when dados is null or dados = ''
then 'OI'
else dados
end
se for em outro...num sei não
Esse do sql server seria na string do select ?????
sim..
set temp = conxao.Execute("select case when dados is null or dados = '' then 'OI' else dados end ")
set temp = conxao.Execute("select case when dados is null or dados = '' then 'OI' else dados end ")
a ta .... e se o banco de dados for do access? Funciona tambem ?
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.
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.
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.
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.
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.
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.
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
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

onde
então a de consta debito nao sera suprimida,
leia - se
então a mensagem de consta debito, não será suprimida,
então a de consta debito nao sera suprimida,
leia - se
então a mensagem de consta debito, não será suprimida,
Tópico encerrado , respostas não são mais permitidas