一些背景: 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对其进行绘制,以便按月比较每年的数据。理想情况下,我希望有一张图表可以比较2013年1月到2013年1月,以及一年中的每个月。
如何做到这一点?
谢谢, 布赖恩
答案 0 :(得分:0)
为什么不使用SQL&#34; group by&#34;?
它应该是这样的:
select count(tickets), closed_date
from get_closed_tickets
where closed_date >= #previous_year#
and closed_date < #this_year#
group by closed_date
另一个重要的事情。您不应该在查询中使用select *
。始终使用列名称。如果您实际上不需要数据库表中的所有列,它将提高性能。