Рассмотрим таблицу с 3 столбцами:
CREATE TABLE myTable (
ItemName nvarchar(100),
ItemRank int,
ItemLoc nvarchar(100))
Пример вывода из таблицы (запрос для вставки ниже)
SELECT * FROM myTable
- Item1, 1, LocA
- Item1, 2, LocB
- Item1, 3, LocC
- Item2, 1, LocA
- Item2, 2, LocC
- Item3, 1, LocB
INSERT INTO [dbo].[myTable]
([ItemName]
,[ItemRank]
,[ItemLoc])
VALUES
('Item1',1,'LocA'),
('Item1',2,'LocB'),
('Item1',3,'LocC'),
('Item2',1,'LocA'),
('Item2',2,'LocC'),
('Item3',1,'LocB')
Теперь я знаю, что есть только 3 возможных значения ItemLoc
(LocA, LocB, LocC).
Мне нужновыбрать все ItemName
с из myTable
, где элементу не назначены все ItemLoc
с (например, LocA, LocB, LocC).
Требуемый вывод с использованием данных aboce:
- Item2
- Item3
, поскольку Item2
не имеет LocB
, а Item3
не имеет LocA
или LocC
set.
Как я могу это сделать?Я пытался использовать NOT EXISTS
запрос и перечислять условия, но безрезультатно.