一些背景:ColdFusion9MSAccess数据库
我正在尝试创建一个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绘制出来,按月比较每年的数据。理想情况下,我希望有一张图表,可以比较一年中每个月的2012年1月和2013年1月,以此类推。
如何做到这一点?
谢谢,Brian
为什么不使用SQL"groupby"?
应该是这样的:
select count(tickets), closed_date
from get_closed_tickets
where closed_date >= #previous_year#
and closed_date < #this_year#
group by closed_date
另一件重要的事情您不应该在查询中使用select *
。始终使用列名。如果您实际上并不需要数据库表中的所有列,那么它将提高性能。