#sql #reporting-services #parameters
#sql #службы отчетов #параметры
Вопрос:
Мне нужно иметь возможность выбирать все 3 из них, когда я создаю это в отчете. Я знаю, что это немного глупо с третьим вариантом, но клиент хочет иметь возможность щелкнуть все 3.
AND CASE WHEN @Display IN (1) AND (POPGT.LimitedQty >= 1 OR POPDX.LimitedQty >= 1) THEN 1
WHEN @Display IN (2) AND (POPGT.NewSingleOrderQty >= 1 OR POPDX.NewSingleOrderQty >= 1) THEN 1
WHEN @Display IN (0) THEN 1 END = 1
Комментарии:
1.Обычно в
AND
предложении лучше использовать конструкцииOR
/case
вместо выраженийWHERE
.
Ответ №1:
Не используйте case
выражение. Что-то вроде этого:
(@Display IN ('1', '*') AND (POPGT.LimitedQty >= 1 OR POPDX.LimitedQty >= 1)) OR
(@Display IN ('2', '*') AND (POPGT.NewSingleOrderQty >= 1 OR POPDX.NewSingleOrderQty >= 1)) OR
(@Display IN ('0', '*'))
Комментарии:
1. Я заставил его работать так, как я хотел, немного переключив его (‘1’ В (@Display) И (POPGT. LimitedQty >= 1 ИЛИ POPDX.LimitedQty >= 1)) ИЛИ (‘2’ В (@Display) И (POPGT. NewSingleOrderQty >= 1 ИЛИ POPDX.NewSingleOrderQty >= 1)) ИЛИ (‘0’ В (@Display))