Как вывести значение запроса только один раз? - PullRequest
1 голос
/ 12 июня 2019

У меня есть запрос, который возвращает четыре столбца. Один из столбцов может иметь одинаковое значение для нескольких записей. Я хотел бы вывести это значение только один раз. Вот пример данных:

Rec ID  Name   Color  Year
45      Nick   Green  2018
34      Mike   Red    2018
37      Nick   Blue   2019
44      John   Pink   2019
23      Jimmy  Orange 2019

Я использую этот код для вывода значений:

<cfoutput>
  <cfloop query="myQuery">
     <cfif fiscal_year gt 1991>
        <tr>    
            <td colspan="4"><a href="new_page.cfm?year=#year#>View All</a></td>
        </tr>
     </cfif>
     <tr>
        <td>#rec_id#</td>
        <td>#name#</td>
        <td>#color#</td>
        <td>#year#</td>
     </tr>
   </cfloop>
</cfoutput>

Мой вывод выглядит так:

View All
45      Nick   Green  2018
View All
34      Mike   Red    2018
View All
37      Nick   Blue   2019
View All
44      John   Pink   2019
View All
23      Jimmy  Orange 2019

Вместо этого я хотел бы, чтобы мой вывод тоже выглядел так:

View All
45      Nick   Green  2018
34      Mike   Red    2018
View All
37      Nick   Blue   2019
44      John   Pink   2019
23      Jimmy  Orange 2019

Какой самый простой способ добиться этого?

1 Ответ

4 голосов
/ 13 июня 2019

Тег <cfoutput> имеет атрибут group, который позволяет группировать данные запроса по столбцу.Вы можете вкладывать сгруппированные данные в другой тег <cfoutput> и даже группировать по нескольким столбцам.Это должно выглядеть примерно так:

<cfoutput query="myQuery" group="year">
    <cfif fiscal_year gt 1991>
        <tr>    
            <td colspan="4"><a href="new_page.cfm?year=#year#">View All</a></td>
        </tr>
    </cfif>
    <cfoutput>
    <tr>
        <td>#rec_id#</td>
        <td>#name#</td>
        <td>#color#</td>
        <td>#year#</td>
    </tr>
    </cfoutput>
</cfoutput>
...