подсчитать общее количество записей для каждого пользователя - PullRequest
1 голос
/ 08 октября 2019

У меня есть этот код, который тянет всех пользователей с открытыми запросами. Мне нужно показать итоговую сумму для каждого назначенного покупателя.

<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

Заранее спасибо. CarlosL

1 Ответ

3 голосов
/ 08 октября 2019

Есть несколько способов сделать это с помощью корректировок запросов для получения счетчиков и построения структурных счетчиков по уникальному ключу.

Самый простой способ определить, где вы сейчас находитесь, - это создать счетчик на основе того,Текущий назначенный покупатель такой же, как и предыдущий назначенный покупатель. 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>
...