Как в UniQuery узнать количество уникальных значений, найденных при выполнении BREAK.ON

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

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.

3 ответа

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

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

В 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

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

Удачи!

Я не предлагаю решение, но хочу отметить, что ключевое слово RetrieVe для счетчика — ENUM. TOTAL EVAL «1» — это ненужный мусор, по крайней мере, в U2.

      LIST CUSTOMER BREAK.ON CITY ENUM @ID

Поскольку системная переменная @NB устанавливается только для итоговых строк, это позволит вашему счетчику рассчитать количество ИТОГО строк, которые встречаются для каждого уникального города, за исключением общей суммы.

LIST CUSTOMER BREAK-ON CITY TOTAL EVAL "IF @NB < 127 THEN 1 ELSE 0" COL.HDG "Customer Count" TOTAL CUR_BALANCE BY CITY

У меня нет системы, чтобы примерить это, но это мое понимание переменной.

Другие вопросы по тегам