1

我有这段代码可以拉出所有有开放请求的用户。我需要显示每个指定买家的总数。

<CFQUERY  NAME="allbuyers" DATASOURCE="procuresource3">
    SELECT *
    FROM allorders3
    WHERE open = 'y'  
    order by assignedbuyer
</cfquery>

<cfoutput query="allbuyers">  
    #assignedbuyer# #prn#
</cfoutput>

<cfoutput>
    Total: #allbuyers.RecordCount# 
</cfoutput> 

输出是所有记录。我需要每个用户的总数。下面是这样的:

Christine - 301366
Christine - 300729
Christine - 300731
Christine - 300732
Total: 4
<br>
Connie    - 301524
Connie    - 301516
Connie    - 301510
Connie    - 301509
Connie    - 301460
Connie    - 301362
Total: 6
<br>
Dannette  - 301478
Dannette  - 301458
Dannette  - 301340
Total: 3

先感谢您。卡洛斯

4

1 回答 1

3

有多种方法可以通过查询调整来获取计数并通过唯一键建立结构计数来实现此目的。

最直接的方法是根据当前的assignedbuyer 是否与之前的assignedbuyer 相同来建立计数。CF 提供了一种内置方式,可以在查询group列更改时让代码在循环中运行。

<cfset q = queryNew("") />
<cfset queryAddColumn(q, "name", "varchar", ['Dan','Dan', 'Bob', 'Bob', 'Bob', 'Chris']) />

<cfoutput query="q" group="name">
    <cfset count = 0 />
    <p>
        <cfoutput>
            #name#<br />
            <cfset count += 1 />
        </cfoutput>
        Total: #count#
    </p>
</cfoutput>

输出

<p>
    Dan<br>
    Dan<br>
    Total: 2
</p>
<p>
    Bob<br>
    Bob<br>
    Bob<br>
    Total: 3
</p>
<p>
    Chris<br>
    Total: 1
</p>
于 2019-10-08T20:26:58.130 回答