如何从查询中输出基于年份的结果?

时间:2014-06-09 16:59:22

标签: coldfusion

我有一个问题:

<cfquery  name="pivotquery">
  SELECT employeedept,cse_name,YEAR,January,February,March,April,May,June,July,August,September,October,November,December
  FROM (
        SELECT month= datename(month,execoffice_date) 
              , YEAR =YEAR(execoffice_date)
              ,  employeedept
              , COUNT(*) as 'totalstars'
        FROM CSEReduxResponses
        WHERE execoffice_status = 1
        GROUP BY  employeedept
               , month(execoffice_date)
               , YEAR(execoffice_date)
               , DATENAME(month,execoffice_date)
      ) 
      AS r 

      JOIN csedept d ON d.cse_dept = r.employeedept

  PIVOT
    (
        SUM(totalStars)
        FOR [month] IN  (
                [January],[February],[March],[April],
                [May],[June],[July],[August],
                [September],[October],[November],[December]
        )
    ) 
    AS pvt

</cfquery>

根据月份和年份,这可以获得我想要的所有数据。 我在表格中输出结果:

<table >
<thead>
<tr>
    <th>Department</th>
    <th>January</th>
    <th>Frebruary</th>
    .........
</tr>
</thead>
<tbody>
    <cfoutput query="pivotquery" >
    <tr>
        <td>#pivotquery.csedept_name#</td>
        <td>#pivotquery.January#</td>
        <td>#pivotquery.February#</td>
        ....... 
    </tr>
    </cfoutput>
</tbody>
</table>

是正确输出数据。如何让它按年份在单独的表格中输出结果?

如果您查看此sqlfiddle,则会显示2014年和2015年的数据。所以我想为每年生成一个单独的表。因此,对于我在sqlfiddle中创建的数据,它将有2个表:一个用于2014年和2015年。

1 个答案:

答案 0 :(得分:3)

取决于您希望如何显示内容。但是,由于看起来您的数据是按年订购的,因此您应该能够按年份通过按年度对cfoutput进行分组来显示。如下所示:

<cfoutput query="pivotquery" group="YEAR">
<table >
<thead>
    <tr>
        <th>Department for #pivotquery.YEAR#</th>
    <th>January</th>
    <th>Frebruary</th>
    .........
    </tr>
</thead>
    <tbody>
        <cfoutput>
            <tr>
            <td>#pivotquery.csedept_name#</td>
            <td>#pivotquery.January#</td>
    <td>#pivotquery.February#</td>
    ....... 

            </tr>
        </cfoutput>
    </tbody>
</table>
</cfoutput>