フィルター処理する 2 つのパラメーターがあります。競合他社 ID が null またはゼロの場合は、別のテーブルのすべての競合他社 ID に対してセットをフィルター処理する必要があります。それ以外の場合は、競合他社 ID に対してフィルター処理する必要があります。
私は次のように書いていますが、すべての競合他社に対してフィルタリングするため、間違っています.
SELECT
*
FROM DashboardDataCache AS d
WHERE ISNULL ( @CompetitorID , 0 ) = 0
OR d.CompetitorID IN (
SELECT
Value
FROM dbo.SessionFilters
WHERE SessionID = @SessionID
AND field IN ( 'competitor' , 'article_competitor' )) ;