У меня есть таблица, определенные и заселенных следующим образом:Sql: Выберите, где условие истинно для всех типов
DECLARE @Temp TABLE
(
ProjectId INT,
EmployeeId INT,
SomeTypeId INT,
IsExpired BIT,
IsWarning BIT,
IsIncomplete BIT
)
--all incomplete...
INSERT INTO @Temp VALUES (1, 1, 1, 0, 0, 1)
INSERT INTO @Temp VALUES (1, 1, 2, 0, 0, 1)
INSERT INTO @Temp VALUES (1, 1, 3, 0, 0, 1)
--two warnings...
INSERT INTO @Temp VALUES (1, 2, 1, 0, 1, 0)
INSERT INTO @Temp VALUES (1, 2, 2, 0, 1, 0)
INSERT INTO @Temp VALUES (1, 2, 3, 0, 0, 0)
--two expirations...
INSERT INTO @Temp VALUES (1, 3, 1, 0, 0, 0)
INSERT INTO @Temp VALUES (1, 3, 2, 1, 0, 0)
INSERT INTO @Temp VALUES (1, 3, 3, 1, 0, 0)
Я хочу вернуться отчетливое ProjectID, EmployeeID пары с любыми предупреждениями или выдохов:
SELECT DISTINCT ProjectId, EmployeeId FROM @Temp WHERE IsWarning = 1 OR IsExpired = 1
Нет проблем.
Однако, я хотел бы также возвращать пары ProjectId, EmployeeId, где IsWarning = 0 и IsExpired = 0 и IsIncomplete = 1, но это должно быть верно для всех SomeTypeId (1, 2, 3). Другими словами, никаких предупреждений, без истечения срока действия, просто неполных для всех категорий.
SomeTypeId Fks для таблицы поиска. Сейчас есть только 3 записи, но в будущем их может быть больше.
Любые идеи?
Ожидается, что ProjectId, EmployeeId (1, 1) будет возвращен.
Это не работает для сценария, где 'все 1,2,3 SomeTypeId' записи имеют' IsWarning = 0 и IsExpired = 0 и IsIncomplete = 1' – Kaf
@Kaf Hm? Возможно, я очень неправильно понял вопрос, но я не вижу, какой случай не сработает. Не могли бы вы привести встречный пример? –
Хорошее решение. Спасибо. –