У меня есть следующий оператор SQL:
SELECT
WORKORDER.WONUM,
WORKORDER.WO3,
WORKORDER.DESCRIPTION WO_DESC,
WORKORDER.WORKTYPE,
WORKORDER.STATUS,
WORKORDER.WOPRIORITY,
(case when WORKORDER.CUSTREQ1=1 then 'Yes' else 'No' end) WO18,
WORKORDER.REPORTDATE,
WORKORDER.ACTFINISH,
(WORKORDER.LOCATION + ' ' +LOCATIONS.DESCRIPTION) LOC_DESC
FROM WORKORDER
LEFT OUTER JOIN LOCATIONS ON WORKORDER.LOCATION = LOCATIONS.LOCATION
WHERE
WORKORDER.HISTORYFLAG = 0
AND WORKORDER.ISTASK = 0
AND WORKORDER.STATUS = 'COMP'
AND WORKORDER.STATUSDATE >= getdate() - 1
AND WORKORDER.LOCATION LIKE 'ABC%'
Я хотел бы добавить дополнительное условие (возможно, в предложении WHERE), которое включит следующее поведение:
- Если рабочий тип WORKTYPE - «PM», а WOPRIORITY - 5, не включайте его!
- Если рабочий порядок WORKTYPE - это что-то еще, разрешите любой приоритет
Я не уверен, какой именно оператор IF или CASE следует добавить в предложение WHERE, чтобы конкретно ограничить приоритет 5 вечера. Любая помощь очень ценится! Заранее спасибо!
Возможно, я нашел решение! Я добавил следующую строку в конец предложения WHERE:
AND (case when WORKORDER.WORKTYPE='PM' then WORKORDER.WOPRIORITY<>5)