#mysql
Вопрос:
У меня есть статус ТАБЛИЦЫ:
Статус | Причина |
---|---|
Y | 1 |
N | 1 |
U | 1 |
X | 1 |
Y | 2 |
N | 2 |
N | 2 |
N | 4 |
N | 5 |
Я хочу СУММИРОВАТЬ весь статус NOT IN (Y,U,X)
, но я также не хочу включать статус N
, который имеет значение причины 2
и 5
Ответ №1:
Вы можете попробовать следующую логику:
SELECT SUM(Reason) -- sum is 5 for the sample data you provided
FROM Status
WHERE Status NOT IN ('U', 'X', 'Y') AND (Status <> 'N' OR Reason NOT IN (2, 5));
ДЕМОНСТРАЦИЯ
Комментарии:
1. @daniel.chan Я вижу, что сохраняются два кортежа
(N, 1)
и(N, 4)
. Поправьте меня, если я ошибаюсь.2. проблема в том, что может быть и другая причина, о которой мы не знаем. Все, что мы знаем, это НЕ 2 и не 5
Ответ №2:
Попробуйте эти строки кода, возможно, вам помогут. Имя таблицы должно совпадать с именем вашей таблицы.
SELECT SUM(Reason)
FROM table_name
WHERE Reason < 2;