DOR DE CABECA COM UM IIF

WEBIER 24/02/2011 17:15:54
#366508
Possuo o seguinte SQL:

[Ô]SELECT iif(PARCELAS.DATA <= date() , (DATE() - PARCELAS.DATA) , [ô]0[ô]) as var_Atrazo,   [ô]aqui continua outra coisa


a ideia é pegar se a data da parcela for menor ou igual a hoje, ele me mostra a quantidade de dias... e se nao for... ele me mostra zero.

tá funcionando perfeitamente isso

Agora preciso inserir outro IIF ai...

ser assim

iff (optJurosSim.value=true, ele conta a quant de dias, [ô]0[ô]) as var_atrazo


como ficaria esse codigo?
RPMARQUES 24/02/2011 17:22:03
#366510
SE TU PEGAR A DATA DA PARCELA...E COM A DATA ATUAL CALCULAR OS DIAS...
ELE Ñ VAI DAR CERTO???
WEBIER 24/02/2011 17:34:14
#366513
como eu disse!

Estao funcionando...

o que preciso:

if optJurosSim.value=true then
iif(PARCELAS.DATA <= date() , (DATE() - PARCELAS.DATA) , [ô]0[ô]) as var_Atrazo
else
[ô]0[ô] as var_Atrazo
end if


sendo isso tudo na mesma SQL
MARCELO.TREZE 24/02/2011 17:42:47
#366514
eu não entendi direito vc colocar o código acima, dentro da query é isso?

se for existe um campo no banco chamado optJuros, e vc salva true ou false, ou 0 e 1?

explique só um pouquinho melhor
WEBIER 24/02/2011 17:59:28
#366517
optJurosSim é um objeto do tipo optionbutton

entao se ele tiver marcado... value=true... ele deve contar os dias com aquelas condições... se ele nao tiver marcado.. ele ele declara o valor do campo var_Atrazo como zero ([ô]0[ô] as var_Atrazo)
MARCELO.TREZE 25/02/2011 08:31:31
#366543
Resposta escolhida
mas colega do jeito que você está dizendo, já foi feito, é isso que nãt estou entendendo.

Citação:

:
como eu disse!

Estao funcionando...

o que preciso:

if optJurosSim.value=true then
iif(PARCELAS.DATA <= date() , (DATE() - PARCELAS.DATA) , [ô]0[ô]) as var_Atrazo
else
[ô]0[ô] as var_Atrazo
end if


sendo isso tudo na mesma SQL

EDERMIR 26/02/2011 12:32:29
#366657
WEBIER

Eu costumo montar o comando SQL e executá-lo diretamente, ou seja:

Wcampos = [Ô][ô]0[ô][Ô]
if optJurosSim.value=true then
if PARCELAS.DATA <= date() then
Wcampos = DATE() - PARCELAS.DATA
endif
end if

Wcomando = [Ô]select [Ô] & Wcampos & [Ô] as var_Atrazo, [ô]aqui continua outra coisa[Ô]

rs.open Wcomando
WEBIER 07/03/2011 22:02:41
#367491
Citação:

:
WEBIER

Eu costumo montar o comando SQL e executá-lo diretamente, ou seja:

Wcampos = [Ô][ô]0[ô][Ô]
if optJurosSim.value=true then
if PARCELAS.DATA <= date() then
Wcampos = DATE() - PARCELAS.DATA
endif
end if

Wcomando = [Ô]select [Ô] & Wcampos & [Ô] as var_Atrazo, [ô]aqui continua outra coisa[Ô]

rs.open Wcomando



baseado nesse ideia eu fiz assim:

Dim varDatas As String
varDatas = [Ô][ô]0[ô][Ô]
If optJurosSim.Value = True Then
If Parcelas.Data <= Date Then
varDatas = Date - Parcelas.Data
End If
End If

Call Abrir_BancodeDados
SQL = [Ô]SELECT [Ô] & varDatas & [Ô] as var_Atrazo, [ô]aqui segue outras coisas


deu erro logo que executei... ele diz que metodo ou tipo de dados não encontrado para Parcelas.Data

ou seja... ele não saber o que é Parcelas.Data pois a tabela de parcela só é carregada após

Alguem tem alguma ideia de como fazer isso?

Tópico encerrado , respostas não são mais permitidas