按月分组查询结果

时间:2015-06-29 08:34:55

标签: coldfusion coldfusion-9

我有一个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 

我希望显示基于月份对其进行分组的查询结果

e.g 月份名称作为第一列,然后是每行的月份日期。 我不知道如何在这种情况下对查询进行分组。

1 个答案:

答案 0 :(得分:5)

更新您的查询,以获得yearmonth列。您没有指定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>