1
У меня есть таблица в моей базе данных, которая выглядит как:Как пропустить определенную строку в SQL
+-------------+---------+--------+
| ProductName | Status | Branch |
+-------------+---------+--------+
| P1 | dead | 1 |
| P1 | dead | 2 |
| P2 | expired | 1 |
| P3 | expired | 3 |
+-------------+---------+--------+
Я хочу, чтобы показать результат после сравнения продуктов, как: (Сравнивая продукты из отделения 1 и 2)
+-------------+---------+--------+
| ProductName | Branch 1|Branch 2|
+-------------+---------+--------+
| P1 | dead | dead|
| P2 | expired | OK |
+-------------+---------+--------+
Но после того, как я запускаю следующий запрос:
<pre>
SELECT ProductName,
MAX(CASE
WHEN Branch=1
THEN Status
ELSE NULL
END) AS 'Branch 1',
MAX(CASE
WHEN Branch=2
THEN Status
ELSE NULL
END) AS 'Branch 2'
FROM MyTable
GROUP BY ProductName;
Я получаю результат:
+-------------+---------+--------+
| ProductName | Branch 1|Branch 2|
+-------------+---------+--------+
| P1 | dead | dead|
| P2 | expired | OK |
| P3 | OK | OK |
+-------------+---------+--------+
SQLFiddle
Что я хочу, чтобы не включать продукты в таблице, которые кроме этого Сектора 1 или 2. Благодаря
Спасибо. Не могли бы вы рассказать мне, как именно работает ** Where In **? – Hasnain
Параметр 'IN()' будет включать только строки с ветвью 1 или 2, которые будут фильтровать все строки с разным номером филиала, например 3, если вы хотите получить записи, чья ветвь может b 2 или 3, а затем в разделе будет '' Ветвь в (2,3) 'см. Образец [' demo'] (http://sqlfiddle.com/#!9/200de/14) –
@M Халид, я понял. спасибо за вашу любезную помощь. – Hasnain