按月份对CFQuery结果进行排序



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

相关内容

  • 没有找到相关文章

最新更新