В UniQuery как узнать количество найденных уникальных значений при выполнении BREAK.ON - PullRequest
1 голос
/ 07 февраля 2020

Я знаю, что могу подсчитать количество отдельных записей в каждой уникальной группе записей со следующими данными:

LIST CUSTOMER BREAK-ON CITY TOTAL EVAL "1" COL.HDG "Customer Count" TOTAL CUR_BALANCE BY CITY

И в итоге я получаю что-то вроде этого.

Cust...... City...... Customer Count Currently Owes

         6 Arvada     1                        4.54
           ********** -------------- --------------
           Arvada     1                        4.54

       190 Boulder    1                        0.00
         1 Boulder    1                       13.65
           ********** -------------- --------------
           Boulder    2                       13.65
 ...
                      ============== ==============
TOTAL                 29                      85.28
29 records listed

Что становится этим после того, как мы скрываем детали и фокусируемся на самих группах.

City...... Customer Count Currently Owes

Arvada     1                        4.54
Boulder    2                       13.65
Chicago    3                        4.50
Denver     6                        0.00
...
           ============== ==============
TOTAL      29                      85.28
29 records listed

Но могу ли я подсчитать, сколько уникальных группировок в одном отчете? Примерно так.

City...... Customer Count Currently Owes City Count

Arvada     1                        4.54          1
Boulder    2                       13.65          1
Chicago    3                        4.50          1
Denver     6                        0.00          1
...
           ============== ============== ==========
TOTAL      29                      85.28         17
29 records listed

По сути, я хочу, чтобы уникальный счетчик значений был интегрирован в другой отчет, чтобы мне не пришлось создавать дополнительный отчет только для чего-то такого простого.

SELECT CUSTOMER SAVING UNIQUE CITY

17 records selected to list 0.

1 Ответ

1 голос
/ 13 февраля 2020

Клянусь, это должно быть проще. Я вижу различные @ переменные в документации, которые намекают на возможность сделать это легко, но я никогда не собирался заставить одну из них работать.

Если ваши данные структурированы таким образом, что ваш идентификатор то, что вы будете группировать, и данные, которые вы хотите, хранятся в поле значения с разделителями, и вы не хотите включать или исключать что-либо, вы можете использовать что-то вроде следующего.

В UniVerse, используя таблицу CUSTOMER в демо-счете HS.SALES, установленном во многих системах, вы можете сделать это. CUSTID - это запись @ID, а атрибут 13 - это место, где PRICE хранится в массиве с разделителями значений.

    LIST CUSTOMER BREAK-ON CUSTID TOTAL EVAL "DCOUNT(@RECORD<13>,@VM)" TOTAL PRICE AS P.PRICE BY CUSTID DET.SUP

, который выводит это.

               DCOUNT(@RECORD<13>,@
Customer ID    VM).................    P.PRICE

          1    1                        $4,200
          2    3                       $19,500
          3    1                        $4,250
          4    1                       $16,500
          5    2                        $3,800
          6    0                            $0
          7    2                        $5,480
          8    2                       $12,900
          9    0                            $0
         10    3                       $10,390
         11    0                            $0
         12    0                            $0
               ====================    =======
               15                      $77,020

Это небольшой сок для большого сжатия, но я надеюсь, что вы найдете его полезным.

Удачи!

...