【问题标题】:ColdFusion - Output Grouping From a QueryColdFusion - 查询的输出分组
【发布时间】:2020-01-31 23:16:17
【问题描述】:

我有一个很好的问题,可能很简单。我有以下查询:

<cfquery name="getempareview" dbtype="query">
  SELECT firstname,lastname,deptname,supcode
  FROM getreviews
  WHERE supcode IN (#preserveSingleQuotes(setsupcode)#)
</cfquery>

我需要做的是输出,以便 supcode 在列表中包含其他数据。因此,如果我有 100 行数据并且 25 条记录的 supcode 相同,则只需以下内容:

上码 firstname lastname - 部门名称(所有 25 条记录都将在此处列出)

任何帮助将不胜感激。

【问题讨论】:

  • 与您的问题无关,但使用列表属性设置为 yes 的 cfqueryparam 标记比使用 PreserveSingleQuotes 更可靠。
  • 与您的问题有关,为了使@TRose 的正确答案能够为您提供所需的结果,您必须在查询中添加一个 order by 子句。
  • 这是一个查询查询。有必要吗?您也许可以在一个查询中获取所有信息。您是否正在运行基本查询以获取setsupcodes 的列表?这对您的数据库和网络来说是很多额外的工作。

标签: coldfusion cfml cfquery cfloop


【解决方案1】:

嵌套输出。试试这个。

<cfoutput query="YourQueryName" group="SupCode">
<h2>#SupCode#</h2>
<cfoutput>
#FirstName# #LastName# <br/>
</cfoutput>

</cfoutput>

【讨论】:

【解决方案2】:

您需要使用嵌套和分组输出。并在您的查询中添加ORDER BY

<cfset setsupcode = "1,3,5">

<cfquery name="getempareview" dbtype="query">
  SELECT firstname,lastname,deptname,supcode
  FROM getreviews
  WHERE supcode IN (<cfqueryparam value="#setsupcode#" cfsqltype="numeric" list="yes">)
  ORDER BY supcode, deptname, lastname, firstname
</cfquery>

<cfoutput query="getempareview" group="supcode">
    <h2>#supcode#</h2>
    <cfoutput group="deptname">
        #firstname# #lastname# (#deptname#) <br>
    </cfoutput>
</cfoutput>

https://trycf.com/gist/763ede5485b0978504250f7f5baf9deb/acf11?theme=solarized_dark

此外,由于这显然是一个 Query of Query,您可以在初始查询中更好地组织数据,而不必返回重新处理数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-28
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多