Ваш запрос должен соответствовать шаблону: SELECT FROM WHERE
.Я имею в виду, что вы можете изменить порядок предложений:
SELECT B.OBJECTID, WO.Type, WO.Priority
FROM CFAdmin.WorkOrder_EVW as WO
INNER JOIN (
SELECT A.ObjectID
FROM
(
SELECT
ObjectID,
CASE
WHEN WOEntity = 0 THEN 0 -- In-House
WHEN WOEntity IN (1,2) THEN 1 -- Contract
WHEN WOEntity IN (3,4) THEN 3 -- Utility
WHEN WOEntity IN (5,6) THEN 4 -- Permitted
WHEN WOEntity IS NULL THEN 10 -- No Entity
ELSE 11 --11 = Other
END AS WOEntityINT
FROM CFAdmin.WorkOrder_EVW
WHERE
(Status not in (1,2)) AND
(Borough IN (@Borough))
) AS A
WHERE (@WOEntityINT IS NULL OR (WOEntityINT = @WOEntityINT)) --field
WOEntityINT is a derived field
) AS B
on B.OBJECTID = WO.OBJECTID
Помните, что вы можете написать CTE для улучшения читабельности:
WITH a AS
(
SELECT objectid,
CASE
WHEN woentity = 0 THEN 0 -- In-House
WHEN woentity IN (1,2) THEN 1 -- Contract
WHEN woentity IN (3,4) THEN 3 -- Utility
WHEN woentity IN (5,6) THEN 4 -- Permitted
WHEN woentity IS NULL THEN 10 -- No Entity
ELSE 11 --11 = Other
END AS woentityint
FROM cfadmin.workorder_evw
WHERE (
status NOT IN (1,2))
AND (
borough IN (@Borough)) )
, b AS
(
SELECT a.objectid
FROM a
WHERE (
@WOEntityINT IS NULL
OR (
woentityint = @WOEntityINT)) --field
woentityint IS a derived field
)
SELECT b.objectid,
wo.type,
wo.priority
FROM cfadmin.workorder_evw AS wo
INNER JOIN b
ON b.objectid = wo.objectid
Отказ от ответственности: это всего лишь предложение начать отлаживать и изолировать вашу проблему,Я думаю, после этих изменений вы найдете новые проблемы.Пожалуйста, не задавайте новых вопросов в этом сообщении.