1

一些背景知识:ColdFusion9 MSAccess 数据库

我正在尝试创建一个 CFChart 来比较标记为 closed_tickets 的表中的数据。我正在将今年的数据与前一年的数据进行比较,并希望按月绘制图表。

我正在查询表格并获取 2012 年 1 月 1 日和 2013 年 12 月 31 日之间的所有数据,基本上是今年和去年的所有数据。这是那个查询。

<!---Query all closed tickets from this year and last year where closed_date GTE #Previous_Year# --->

<CFSET previous_year = #CREATEODBCDATETIME("1/1/2012")#>
<CFSET this_year = #CREATEODBCDATETIME("1/1/2013")#>

<cfoutput>
<cfquery name="get_closed_tickets" datasource="#datasource#">
select *
from closed_tickets
where closed_date >= #previous_year#
</cfquery>
</cfoutput>

<cfoutput>
Total Records:#get_closed_tickets.recordcount#<br />
</cfoutput>

然后我执行查询,将数据吐出 2 年,今年和上一年:

<!---QoQ - Get Previous Year's Calls --->
<cfoutput>
<cfquery name="previous_year" dbtype="query">
select *
from get_closed_tickets
where closed_date >= #previous_year# AND closed_date < #this_year#
</cfquery>
</cfoutput>

<!---QoQ - Get This Year's Calls --->
<cfoutput>
<cfquery name="this_year" dbtype="query">
select *
from get_closed_tickets
where closed_date >= #this_year#
</cfquery>
</cfoutput>

2012 Records:<cfoutput>#previous_year.recordcount#</cfoutput><br />
2013 Records:<cfoutput>#this_year.recordcount#</cfoutput><br /><br />

我的问题是,我想获取这些数据并使用 CFChart 绘制图表,以按月比较每年的数据。理想情况下,我希望有一个图表可以比较 January2012 和 January2013 等等,对于一年中的每个月。

如何才能做到这一点?

谢谢,布赖恩

4

1 回答 1

0

为什么不使用 SQL“分组依据”?

它应该是这样的:

select count(tickets), closed_date
from   get_closed_tickets
where  closed_date >= #previous_year# 
and    closed_date < #this_year#
group by closed_date

另一个重要的事情。您不应该select *在查询中使用。始终使用列名。如果您实际上并不需要数据库表中的所有列,它将提高性能。

于 2014-04-03T17:44:24.840 回答