Сортировка результатов CFQuery по месяцам

Немного фона: ColdFusion9 MSAccess База данных

Я пытаюсь создать CFChart для сравнения данных в таблице с пометкой closed_tickets. Я сравниваю данные за этот год с данными за предыдущий год и хотел бы наметить их по месяцам.

Я опрашиваю таблицу и собираю все данные между датами 01.01.2012 и 31.12.2013, в основном весь этот год и прошлый год. Вот этот запрос.

<!---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 года с январем 2013 года и т. Д. Для каждого месяца года.

Как это может быть сделано?

Спасибо Брайан

1 ответ

Почему вы не будете использовать SQL "group by"?

Это должно быть что-то вроде этого:

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

Еще одна важная вещь. Вы не должны использовать select * в ваших запросах. Всегда используйте имена столбцов. Это повысит производительность, если вам не нужны все столбцы в таблице базы данных.

Другие вопросы по тегам