Solved

Incorrect Sum in Access Query

Posted on 2006-07-04
4
311 Views
Last Modified: 2011-09-20

I have a simple query which I would like to sum the amount. The Select query (in SQL view) without the sum is:

SELECT Line_Items.IO, Line_Items.Amount, Line_Items.Date
FROM Line_Items
WHERE (((Line_Items.Date)=#4/3/2006#));

It gives these results:

Code      Amount      Date
1237540      -1126.02      2006-04-03
1237540      -2375      2006-04-03
1237540      -1885.5      2006-04-03
1237540      1126.02      2006-04-03
1237540      2375      2006-04-03
1237540      1885.5      2006-04-03
1728684      -1126.02      2006-04-03
1728684      -2375      2006-04-03
1728684      -1885.5      2006-04-03
1728684      2375      2006-04-03
1728684      1126.02      2006-04-03
1728684      1885.5      2006-04-03

I want to sum the amount, grouped by the Code.

The sql is:

SELECT Line_Items.IO, Sum(Line_Items.Amount) AS SumOfAmount, Line_Items.Date
FROM Line_Items
GROUP BY Line_Items.IO, Line_Items.Date
HAVING (((Line_Items.Date)=#4/3/2006#));

The results are:

IO      SumOfAmount      Date
1237540      0                                      2006-04-03
1728684      -4.54747350886464E-13      2006-04-03

As you can see, the sum for Code 1237540 is correct, while the sum for Code 1728684 is not correct, even though they contain identical amounts.

Why?
0
Comment
Question by:valkyri
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
4 Comments
 
LVL 65

Accepted Solution

by:
rockiroads earned 125 total points
ID: 17037443
Would u be happy if the value was rounded?

SELECT Line_Items.IO, Round(Sum(Line_Items.Amount),2) AS SumOfAmount, Line_Items.Date
FROM Line_Items
GROUP BY Line_Items.IO, Line_Items.Date
HAVING (((Line_Items.Date)=#4/3/2006#));
0
 
LVL 65

Expert Comment

by:rockiroads
ID: 17037449
Access is expanding your double value, it does this, and because its greater than 15, it puts in the -13
This problem occurs with VBA coding as well, not sure how and why Access calculates to so many decimal places, probably due to length of datatype double
0
 

Author Comment

by:valkyri
ID: 17037474

I must be losing my mind, I've had this problem before. Oh well, thank you for reminding me.
0
 
LVL 65

Expert Comment

by:rockiroads
ID: 17037511
No probs
This issue annoys me also
0

Featured Post

Comprehensive Backup Solutions for Microsoft

Acronis protects the complete Microsoft technology stack: Windows Server, Windows PC, laptop and Surface data; Microsoft business applications; Microsoft Hyper-V; Azure VMs; Microsoft Windows Server 2016; Microsoft Exchange 2016 and SQL Server 2016.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

It’s been over a month into 2017, and there is already a sophisticated Gmail phishing email making it rounds. New techniques and tactics, have given hackers a way to authentically impersonate your contacts.How it Works The attack works by targeti…
AutoNumbers should increment automatically, without duplicates.  But sometimes something goes wrong, and the next AutoNumber value is a duplicate.  This article shows how to recover from this problem.
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…
With Microsoft Access, learn how to start a database in different ways and produce different start-up actions allowing you to use a single database to perform multiple tasks. Specify a start-up form through options: Specify an Autoexec macro: Us…

739 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question