СУММА MySQL НЕ ВКЛЮЧЕНА с освобождением

#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;