Solved

Query to get cumulative data

Posted on 2011-03-25
19
686 Views
Last Modified: 2013-11-29
Hello,

I have a table with the following structure, this is in MS Access 2007.

TicketNumber  Date
2343               01/01/2011
1234               01/02/2011
3422               01/4/2011
3423               01/4/2011
7423               02/4/2011
3523               02/6/2011
3513               02/6/2011
3923               03/4/2011

I am able to create a crosstab that would add up the NUMBER of tickets per date; then I take generate a graph using the cross tab and I get a nice simple bar chart displaying tickets/month, so, Jan - 4, Feb - 3, March  - 1

My question now is, I would like to GRAPH a cumulative chart,

It will display, 4 tickets for Jan, 4+3 tickets for Feb, and 4+3+1 tickets for March.

Thanks,
0
Comment
Question by:babble324
  • 9
  • 6
  • 4
19 Comments
 
LVL 119

Expert Comment

by:Rey Obrero
ID: 35218328
select sum(iif(month(date)<2,1,0)) as Jan,sum(iif(month(date)<3,1,0)) as Feb,sum(iif(month(date)<4,1,0)) as Mar
from table
0
 

Author Comment

by:babble324
ID: 35219185
I need this done for years worth of data.
0
 
LVL 119

Expert Comment

by:Rey Obrero
ID: 35219274
how do you want the result look like?
0
 

Author Comment

by:babble324
ID: 35219294
Jan --4
Feb --7
Mar --8
etc.
etc.

This will then be charted on al ine graph using Access Graph Objects.
0
 
LVL 119

Expert Comment

by:Rey Obrero
ID: 35219307
did you try the query posted above?
0
 

Author Comment

by:babble324
ID: 35220130
This will only work for 3 months. I need this for years' worth of data.
0
 
LVL 119

Expert Comment

by:Rey Obrero
ID: 35220230
then expand the query.
0
 
LVL 45

Expert Comment

by:aikimark
ID: 35223771
@babble324

should a month's cumulative sum be for all prior months or just the prior months in that calendar year?
0
 

Author Comment

by:babble324
ID: 35224136
All months that are in the query. Also note that some months may not be there, I.e no tickets issued in that month. So I just want a tally of whatever was queried. Thank you so much for your help.
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 45

Expert Comment

by:aikimark
ID: 35224241
I made a CumulativeSumProblem table and populated it with your posted data.

SELECT Year([TicketDate])*100+Month([TicketDate]) AS yyyymm, Count(CumulativeSumProblem.TicketNumber) AS CountOfTicketNumber, 
(Select Count(*) From CumulativeSumProblem As CS Where Year(CS.[TicketDate])*100+Month(CS.[TicketDate]) <= Year(CumulativeSumProblem.[TicketDate])*100+Month(CumulativeSumProblem.[TicketDate]) ) As CumulativeSum
FROM CumulativeSumProblem
GROUP BY Year([TicketDate])*100+Month([TicketDate]);

Open in new window

0
 

Author Comment

by:babble324
ID: 35224725
yep, that's exactly what i want.

Now, under the yyyymm field in the query, is there a way it can be formatted differently? basically, i would like to take this data and feed it into a ms access chart, it's not recognizing "201103" as a date.

Thanks again,


0
 
LVL 45

Expert Comment

by:aikimark
ID: 35226033
I guess you might try changing all these date values into the first of the month.

So this:
Year([TicketDate])*100+Month([TicketDate])

Open in new window


becomes this
DateSerial(Year([TicketDate]), Month([TicketDate], 1)

Open in new window

0
 

Author Comment

by:babble324
ID: 35226479
I get wrong number of arguments.


SELECT DateSerial(Year([TicketDate]), Month([TicketDate], 1)) AS yyyymm, Count(CumulativeSumProblem.TicketNumber) AS CountOfTicketNumber, 
(Select Count(*) From CumulativeSumProblem As CS Where Year(CS.[TicketDate])*100+Month(CS.[TicketDate]) <= Year(CumulativeSumProblem.[TicketDate])*100+Month(CumulativeSumProblem.[TicketDate]) ) As CumulativeSum
FROM CumulativeSumProblem
GROUP BY DateSerial(Year([TicketDate]), Month([TicketDate], 1));

Open in new window

0
 
LVL 45

Expert Comment

by:aikimark
ID: 35226565
it is a typo on my part.  there is a misplaced right parenthesis
DateSerial(Year([TicketDate]), Month([TicketDate]), 1)

Open in new window

0
 

Author Comment

by:babble324
ID: 35226591
It now says:

"You tried to execute a query that does not include the specified expression 'TicketDate' as part of an aggregate function"
0
 
LVL 45

Expert Comment

by:aikimark
ID: 35226627
please check that you corrected all instances of the typo.  If you still get the error message, then please post your SQL.
0
 

Author Comment

by:babble324
ID: 35226648
There you go.

SELECT DateSerial(Year([TicketDate]), Month([TicketDate]), 1) AS yyyymm, Count(CumulativeSumProblem.TicketNumber) AS CountOfTicketNumber, 
(Select Count(*) From CumulativeSumProblem As CS Where Year(CS.[TicketDate])*100+Month(CS.[TicketDate]) <= Year(CumulativeSumProblem.[TicketDate])*100+Month(CumulativeSumProblem.[TicketDate]) ) As CumulativeSum
FROM CumulativeSumProblem
GROUP BY DateSerial(Year([TicketDate]), Month([TicketDate]), 1);

Open in new window

0
 
LVL 45

Accepted Solution

by:
aikimark earned 500 total points
ID: 35226663
you didn't make enough corrections.
SELECT DateSerial(Year([TicketDate]), Month([TicketDate]), 1) AS yyyymm, Count(CumulativeSumProblem.TicketNumber) AS CountOfTicketNumber, 
(Select Count(*) From CumulativeSumProblem As CS Where 
DateSerial(Year(CS.[TicketDate]), Month(CS.[TicketDate]), 1) <= DateSerial(Year(CumulativeSumProblem.[TicketDate]), Month(CumulativeSumProblem.[TicketDate]), 1) ) As CumulativeSum
FROM CumulativeSumProblem
GROUP BY DateSerial(Year([TicketDate]), Month([TicketDate]), 1);

Open in new window

0
 

Author Comment

by:babble324
ID: 35226679
Thank you very much. It worked!

0

Featured Post

Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

Join & Write a Comment

This article is a continuation or rather an extension from Cascading Combos (http://www.experts-exchange.com/A_5949.html) and builds on examples developed in detail there. It should be understandable alone, but I recommend reading the previous artic…
A simple tool to export all objects of two Access files as text and compare it with Meld, a free diff tool.
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
Basics of query design. Shows you how to construct a simple query by adding tables, perform joins, defining output columns, perform sorting, and apply criteria.

758 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

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now