Tenho uma consulta que realiza um cálculo que deveria ser simples. É uma consulta Totais.
Ela tem os seguintes campos:
INSSPos > INSSNeg > BCTotal > INSSTeto > BCINSS
BCTotal é igual: INSSPos-INSSNeg
BCINSS igual: SeImed([BCTotal]>[INSSTeto];[INSSTeto];[BCTotal])
Um preciso do erro:
INSSPos = R$545,00
INSSNeg = R$5,00
INSSTotal = R$540,00
INSSTeto = 3691,74
BCINSS = 3691,74 (!!!) Deveria ser R$540,00
Acho que o problema está no uso da subtração. Se eu não usar a subtração em INSSTotal, o problema não ocorre.
Abaixo o SQL:
SELECT tblTrab_SalarioLanc.CodSalData, Sum(IIf([BaseINSS]=-1,[Valor])) AS INSSPos, Sum(IIf([DedINSS]=-1,[Valor])) AS INSSNeg, IIf([INSSNeg] Is Null,[INSSPos],([INSSPos]-[INSSNeg])) AS BCTotal, Nz(DMax("Ate","qryTrab_AliquoINSS")) AS INSSTeto, IIf([BCTotal]>[INSSTeto],[INSSTeto],[BCTotal]) AS BCINSS
FROM tblEventos INNER JOIN tblTrab_SalarioLanc ON tblEventos.CodEvento = tblTrab_SalarioLanc.CodEvento2
GROUP BY tblTrab_SalarioLanc.CodSalData;
Ela tem os seguintes campos:
INSSPos > INSSNeg > BCTotal > INSSTeto > BCINSS
BCTotal é igual: INSSPos-INSSNeg
BCINSS igual: SeImed([BCTotal]>[INSSTeto];[INSSTeto];[BCTotal])
Um preciso do erro:
INSSPos = R$545,00
INSSNeg = R$5,00
INSSTotal = R$540,00
INSSTeto = 3691,74
BCINSS = 3691,74 (!!!) Deveria ser R$540,00
Acho que o problema está no uso da subtração. Se eu não usar a subtração em INSSTotal, o problema não ocorre.
Abaixo o SQL:
SELECT tblTrab_SalarioLanc.CodSalData, Sum(IIf([BaseINSS]=-1,[Valor])) AS INSSPos, Sum(IIf([DedINSS]=-1,[Valor])) AS INSSNeg, IIf([INSSNeg] Is Null,[INSSPos],([INSSPos]-[INSSNeg])) AS BCTotal, Nz(DMax("Ate","qryTrab_AliquoINSS")) AS INSSTeto, IIf([BCTotal]>[INSSTeto],[INSSTeto],[BCTotal]) AS BCINSS
FROM tblEventos INNER JOIN tblTrab_SalarioLanc ON tblEventos.CodEvento = tblTrab_SalarioLanc.CodEvento2
GROUP BY tblTrab_SalarioLanc.CodSalData;
Última edição por rgondim em 15/5/2012, 01:06, editado 2 vez(es)