У меня есть представление в SQL Server, которое чем-то похоже на следующий пример.
SELECT *
FROM PEOPLE
LEFT OUTER JOIN (SELECT ID
FROM OTHER_TABLE
WHERE SOME_FIELD = 'x'
OR SOME_FIELD = 'y'
OR SOME_FIELD = 'z') AS PEOPLE_TO_EXCLUDE ON PEOPLE.ID = PEOPLE_TO_EXCLUDE.ID
WHERE PEOPLE_TO_EXCLUDE.ID IS null
хлопот:
Я вполне способен добавлять и изменять "OR SOME_FIELD = 'w'" бесчисленное количество раз. Тем не менее, я делаю это представление для того, чтобы пользователь мог открыть его в Excel через ODBC. Пользователь должен иметь возможность изменить внутренний выбор по своему вкусу, чтобы он соответствовал тому, что он ограничивает в это время дня/недели/месяца/года/и т. д. Мне нужно сделать это таким образом, чтобы она могла легко ограничить SOME_FIELD.
Есть ли у кого-нибудь предложения о том, как это сделать? В идеале я мог бы дать ей представление, в котором она могла бы поместить список значений, разделенных запятыми, которые не могут быть SOME_FIELD. Поскольку у людей может быть несколько строк в OTHER_TABLE, я не могу просто отключить ее ограничение для этой таблицы. Например, у кого-то может быть SOME_FIELD = 'x', но также может быть строка в таблице, где SOME_FIELD = 's'. Этот человек должен быть исключен, потому что у него есть «x», хотя у него также есть «s». Вот почему внутренний выбор необходим.
Спасибо за вашу помощь.