Solved

Incorrect Sum in Access Query

Posted on 2006-07-04
4
319 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

Three Reasons Why Backup is Strategic

Backup is strategic to your business because your data is strategic to your business. Without backup, your business will fail. This white paper explains why it is vital for you to design and immediately execute a backup strategy to protect 100 percent of your data.

Question has a verified solution.

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

You need to know the location of the Office templates folder, so that when you create new templates, they are saved to that location, and thus are available for selection when creating new documents.  The steps to find the Templates folder path are …
The Windows Phone Theme Colours is a tight, powerful, and well balanced palette. This tiny Access application makes it a snap to select and pick a value. And it doubles as an intro to implementing WithEvents, one of Access' hidden gems.
What’s inside an Access Desktop Database. Will look at the basic interface, Navigation Pane (Database Container), Tables, Queries, Forms, Report, Macro’s, and VBA code.
Visualize your data even better in Access queries. Given a date and a value, this lesson shows how to compare that value with the previous value, calculate the difference, and display a circle if the value is the same, an up triangle if it increased…

634 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