|
|
Question : CFChart and graphing a month
|
|
I am trying to graph data for a month.
The problem is that there may be no data for a particular day.
For example, I have the following data
MyCount TheDay TheYear ----------- ----------- ----------- 9 2 2003 12 3 2003 8 5 2003 13 6 2003 6 7 2003 8 8 2003 14 9 2003 13 10 2003 5 11 2003 11 12 2003 7 13 2003 3 14 2003 6 15 2003 14 16 2003 18 17 2003 10 18 2003 13 19 2003 13 20 2003 13 21 2003 12 22 2003 19 23 2003 23 24 2003 15 25 2003 19 26 2003 9 27 2003 10 28 2003 11 29 2003 12 30 2003 2 1 2004 5 2 2004 12 3 2004 25 4 2004 20 6 2004
Notice that there is no data for the 4th of 2003 nor the 1st of 2003 nor the 5th for 2004 (although the missing data doesn't seem to matter as long as there is data for teh corresponding day in the earliest month graphed).
Now when I chart this data I get the days across the X axis like this :
2 3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 1 4
Notice that the 1st and the 4th get put at the end because they did not exists in the first month that was graphed.
I need either :
1) a SQL way to ensure that I pull data for every date in the earliest year (or every year) so that the data looks like
MyCount TheDay TheYear ----------- ----------- ----------- 0 1 2003 9 2 2003 12 3 2003 0 4 2003 8 5 2003 13 6 2003 6 7 2003 8 8 2003 14 9 2003 13 10 2003 5 11 2003 11 12 2003 7 13 2003 3 14 2003 6 15 2003 14 16 2003 18 17 2003 10 18 2003 13 19 2003 13 20 2003 13 21 2003 12 22 2003 19 23 2003 23 24 2003 15 25 2003 19 26 2003 9 27 2003 10 28 2003 11 29 2003 12 30 2003 2 1 2004 5 2 2004 12 3 2004 25 4 2004 0 5 2004 20 6 2004
2) a way to do this in Cold Fusion. I tried Query of Queries, but an outer join is needed and that is not yet supported in query of queries.
Here is my chart code :
chartheight="600" chartwidth="950" yaxistitle="MyCount" format="jpg" scalefrom="0" scaleto="60" gridlines="13" name="output_graph">
|
Answer : CFChart and graphing a month
|
|
1. Get the data from your query, sorted by day.
2. Get the number of days in any given month that you are interested in:
3. Set the year (you can do this programattically to cover mutliple years)
3. Loop over the number of days in that month within your cfchart. Do a query on your query for that day's values, and if one does not exist, insert your own "zero".
chartheight="600" chartwidth="950" yaxistitle="MyCount" format="jpg" scalefrom="0" scaleto="60" gridlines="13" name="output_graph"> SELECT MyCount FROM MyQuery WHERE TheYear = '#thisyear#' AND TheDay = '#thisday#'
I haven't tested this, there are other variables in there I've not accounted for, but that is the gist of it.
cheers,
|
|
|
|
|