按月对查询结果进行分组

grouping query results by months

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

我想显示按月分组的查询结果

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

更新您的查询以包含 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>