按月对CFQuery结果进行排序

时间:2013-08-23 13:03:02

标签: coldfusion cfquery cfchart qoq

一些背景: 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月,以及一年中的每个月。

如何做到这一点?

谢谢, 布赖恩

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 *。始终使用列名称。如果您实际上不需要数据库表中的所有列,它将提高性能。