CONSULTA VENCIMENTOS

IRENKO 11/12/2015 15:24:41
#455031
mSql = [Ô] SELECT COUNT(*) AS Geral,[Ô] + _
[Ô] SUM(IIF(TbData.Vencimento < Now()-1,1,0)) AS VencimentoBase [Ô] + _
[Ô] FROM TbData INNER JOIN (Saidas INNER JOIN Dados ON Saidas.Id = Dados.Id) ON (TbData.IdImv = Saidas.IdIm) AND (TbData.Id = Saidas.Id)[Ô] + _
[Ô] WHERE ((TbData.Pagamento Is Null) AND (Saidas.Status) Is Null) AND (DateDiff([ô]d[ô],TbData.Vencimento,Now())-CInt(IIf(IsNull(Dados.Carencia),0,Dados.Carencia))) >=0 And (Dados.Situacao = [ô]ATIVO[ô])[Ô]

Pessoal, a SQL acima não esta me retornando os valores corretamente, sendo:

primeiro conto o total de registros, depois pego com o SUM o total de registros em atraso, até ai tudo bem, mas no WHERE é q esta dando BUG pois dos registros em atraso eu tenho que desconsiderar aquele em que na tabela Dados.Carencia seja maior que zero e por causa disso o COUNT(*) não conta o total de registros mas o total em atraso. Resumindo......
Contar o total de registros
Contar os em atraso desconsiderando Dados.Carencia >0

Meu banco é access e o campo de pesquisa TbData.Vencimento esta como Data.

Grato,
ALVAROVB2009 14/12/2015 09:07:51
#455105
Resposta escolhida
Irenko a principio o que estou vendo é que na Query vc esta pedindo para que ele NÃO desconsidere carencia = 0, pois vc esta colocando >= 0 e o parenteses esta em lugar errado, ele esta fechando antes do total, acredito que seria algo assim:

AND (DateDiff([ô]d[ô],TbData.Vencimento,Now() )
- CInt(IIf(IsNull(Dados.Carencia),0,Dados.Carencia)) >0 )

Dessa forma ele ignora a carencia zerada
IRENKO 15/12/2015 13:52:16
#455184
ALVAROVB2009, vc estava certo! Query correta ficou assim:

mSql = [Ô] SELECT COUNT(*) AS Geral,[Ô] + _
[Ô] SUM(IIF((DateDiff([ô]d[ô],TbData.Vencimento,Now())-CInt(IIf(IsNull(Dados.Carencia),0,Dados.Carencia))) > 0,1,0)) AS Vencimento [Ô] + _
[Ô] FROM TbData INNER JOIN (Saidas INNER JOIN Dados ON Saidas.Id = Dados.Id) ON (TbData.IdImv = Saidas.IdIm) AND (TbData.Id = Saidas.Id)[Ô] + _
[Ô] WHERE ((TbData.Pagamento Is Null) AND (Saidas.Status) Is Null)AND Dados.Situacao = [ô]ATIVO[ô][Ô]

Obrigado pela dica.
ALVAROVB2009 15/12/2015 14:39:07
#455188
as ordens

Não esqueça de fechar o tópico rsrs
Tópico encerrado , respostas não são mais permitidas