У меня есть следующий запрос, который используется в хранимой процедуре. Я пытаюсь упростить логику в инструкции CASE. В частности, я хотел бы вложить продукт в UserGroup.Упростить логику запросов sql
SELECT DCMNumber,
SUM(CONVERT(INT, CurrentlyAssigned)) AS PriorAssigned
FROM dbo.cauAssignedClaim WITH(NOLOCK)
WHERE RecordType = 'A'
AND ([Status] <> 'DE' OR [Status] IS NULL)
AND DATEADD(dd, 0, DATEDIFF(dd, 0, EntryDate))
BETWEEN
CASE
WHEN Product IN('LTD', 'LTDCP') AND @UserGroup = '' OR @UserGroup = 'NONE'
THEN DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()-30))
WHEN Product IN('STD', 'STDCP', 'SALCN', 'STAT', 'OFFOV') AND @UserGroup = '' OR @UserGroup = 'NONE'
THEN DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()-14))
WHEN Product IN('LTD', 'LTDCP') AND @UserGroup IN('SSAT', 'TCMS')
THEN DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()-7))
WHEN Product IN('STD', 'STDCP', 'SALCN', 'STAT', 'OFFOV') AND @UserGroup IN('Appeals', 'DMS', 'Life', 'WOP', 'IWOP')
THEN DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()-7))
END
AND DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()-1))
GROUP BY [Status], DCMNumber
Что это за выражение? '([Status] <> 'DE' ИЛИ [Status] IS NULL AND [Status] IS NULL)' –
Значения «@» в случае/когда являются значениями, переданными в хранимую процедуру – user1331734