2015-06-29 2 views
0

У меня есть результат ColdFusion запроса, который содержит только датыгруппировка результатов запроса по месяцам

как

2015-07-14 00:00:00.0 
2015-07-22 00:00:00.0 
2015-07-24 00:00:00.0 
2015-07-27 00:00:00.0 
2015-08-04 00:00:00.0 
2015-08-05 00:00:00.0 
2015-08-15 00:00:00.0 
2015-09-01 00:00:00.0 
2015-09-02 00:00:00.0 
2015-09-21 00:00:00.0 
2015-10-14 00:00:00.0 
2015-12-10 00:00:00.0 
2016-01-13 00:00:00.0 

Я хочу, чтобы отобразить результаты запроса, группируя их по месяцам основе

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

+0

ли СУБД вы используете какие-либо функции, которые позволяют вам накладывать дату в строку? –

+1

@ DanBracuk, почему он хотел бы передать дату в строку? –

+0

Ответ Мэтта приведет вас туда. –

ответ

5

Обновите свой запрос, чтобы иметь столбец year и month. Вы не указываете свои DMBS, но для MSSQL вы должны использовать функции year(), month() и day(). Убедитесь, что ваш запрос упорядочен по годам, месяцам и дням, иначе группировка не будет работать должным образом. ColdFusion также имеет встроенную функцию под названием monthAsString(), чтобы отличить целое число от имени месяца.

SELECT year(datecolumn) AS Year, month(datecolumn) AS month, day(datecolumn) AS day, other, columns 
FROM mytable 
WHERE x = y 
ORDER BY year, month, day 

Выход в

<cfoutput query="myquery" group="year"> 
    <cfoupt group="month"> 
    #monthAsString(month)# 
    <cfoutput group="day"> 
     #day# #other# #columns# 
    </cfoutput> 
    </cfoutput> 
</cfoutput> 
Смежные вопросы