Сортировка результатов 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 *
в ваших запросах. Всегда используйте имена столбцов. Это повысит производительность, если вам не нужны все столбцы в таблице базы данных.