Я хотел бы знать, возможно ли SUM, если поле имеет заданное значение c, в противном случае принимается только МИН (только одно значение агрегированных записей)
Я пробовал что-то подобное, но это синтаксически не правильно, поэтому я ищу альтернативу для достижения этой цели:
SELECT FROM ZCDS
FIELDS ZCDS~networkID as networkID,
ZCDS~assignment as assignment,
CASE
WHEN ZCDS~assignment = 'N'
THEN MIN( ZCDS~amount )
ELSE SUM( ZCDS~amount )
END as amount
GROUP BY ZCDS~networkID, ZCDS~assignment
INTO TABLE @DATA(result).
Может быть, есть способ определить, не является ли SUM уже 0, а затем использовать регистр, чтобы прекратить добавлять больше суммы. Но я не знаю, как получить доступ к промежуточному значению СУММЫ в СЛУЧАЕ, вероятно, это также невозможно
Ожидаемый ввод:
+----+-----------+------------+--------+
| ID | NetworkID | Assignment | Amount |
+----+-----------+------------+--------+
| 1 | D/01 | N | 7 |
| 2 | D/01 | N | 5 |
| 3 | D/01 | U | 15 |
| 4 | D/01 | U | 11 |
| 5 | D/02 | N | 40 |
| 6 | D/02 | N | 42 |
+----+-----------+------------+--------+
Ожидаемый вывод:
+-----------+------------+--------+
| NetworkID | Assignment | Amount |
+-----------+------------+--------+
| D/01 | N | 5 |
| D/01 | U | 26 |
| D/02 | N | 40 |
+-----------+------------+--------+