0

Just wondering, given a query and output like so:

<cfoutput query="someItems" group="someColumnName">

     ... doing some stuff here ..

    <cfoutput> doing stuff with some sub items </cfoutput>


</cfoutput>

if there's a way to change the order of elements in the 'inner' cfoutput ? Can the query be both grouped and sorted by?

4

2 回答 2

4

您需要ORDER BY在查询中添加子句才能使其正常工作,但您可以嵌套cfoutput使用该group属性的标签。

<cfoutput query="someItems" group="someColumnName">

     ... doing some stuff here ..

    <cfoutput group="someOtherColumnName> doing stuff with some sub items </cfoutput>


</cfoutput>

这假设在您的查询中,您有如下内容:

ORDER BY someColumnName, someOtherColumnName

请记住,group属性 ofcfqueryGROUP BYSQL 语句中的子句不同。您可以使用查询子句中的ANY 列的group属性。cfoutputORDER BY

于 2013-11-06T16:42:38.123 回答
1

一种解决方案是重组代码以使用查询查询方法。这是一个很好的例子:

http://www.bennadel.com/blog/2211-ColdFusion-Query-Of-Queries-vs-The-Group-Attribute-In-CFOutput.htm

基本上,您在一个主查询(可能是您已经编写的查询)中提取所有您关心的数据。您添加第二个查询(针对您的第一个查询,而不是针对数据库),该查询对您在顶级循环中需要的数据进行分组和聚合。在由第二个查询驱动的循环内,您使用组中的行数据作为另一个查询的参数(再次针对您的第一个查询,而不是针对数据库)来提取与当前排序的行相关的所有数据,但是您欲望。

这种查询查询的想法起初看起来很奇怪,但我没有遇到性能问题,它为您提供了很大的灵活性,可以在内部循环中执行您想要的操作。祝你好运!

于 2013-11-06T16:35:52.310 回答