Использование SQL 2005: «слишком много времени для выполнения»
Я хочу отфильтровать дату, дата не должна отображаться в праздничные дни, и я использую три таблицы с Inner Join
Когда я запускаю приведенный ниже запрос, он занимает слишком много времени для выполнения, потому что я фильтрую cardeventdate с тремя таблицами.
Запрос
SELECT
PERSONID, CardEventDate tmp_cardevent3
WHERE (CardEventDate NOT IN
(SELECT T_CARDEVENT.CARDEVENTDATE
FROM T_PERSON
INNER JOIN T_CARDEVENT ON T_PERSON.PERSONID = T_CARDEVENT.PERSONID
INNER JOIN DUAL_PRO_II_TAS.dbo.T_WORKINOUTTIME ON T_CARDEVENT.CARDEVENTDAY = DUAL_PRO_II_TAS.dbo.T_WORKINOUTTIME.DAYCODE
AND T_PERSON.TACODE = DUAL_PRO_II_TAS.dbo.T_WORKINOUTTIME.TACODE
WHERE (DUAL_PRO_II_TAS.dbo.T_WORKINOUTTIME.HOLIDAY = 'true')
)
)
ORDER BY PERSONID, CardEventDate DESC
Для вышеупомянутого запроса есть любой другой способ сделать фильтр даты.
Ожидаете альтернативные запросы для моего запроса?