Мне нравится суммировать значения в таблице на основе условия, взятого из той же таблицы. Структура таблицы приведена ниже. Таблица называется DataУсловный SUM с оператором SELECT
Data
Type Value
1 5
1 10
1 15
1 25
1 15
1 20
1 5
2 10
3 5
Если значение типа 2 больше, чем значение типа 3, то я хотел бы вычесть значение типа 2 от суммы всех значений в таблице. Я не уверен, как писать инструкции IF, используя значения, которые искали в таблице. Я пробовал ниже, но это не работает.
SELECT SUM(Value)-IF(SELECT Value FROM Data WHERE Type=2>SELECT Value
FROM Data WHERE Type=3 THEN SELECT Value FROM Data
WHERE Type=2 ELSE SELECT Value FROM Data WHERE Type=3) FROM Data
или
SELECT SUM(d.Value)-IIF(a.type2>b.type3, a.type2, b.type3)
FROM Data d, (SELECT Value AS type2 FROM Data WHERE Type=2) a,
(SELECT Value AS type3 FROM Data WHERE Type=3) b