@UserRoleId = 4 の場合はアイテムを検索に含める条件を WHERE 句に追加する必要があり、それ以外の場合は検索から除外します (SQL Server)。
INSERT INTO @partData
(
PartPrefix,
PartNumber,
MyProDescription,
ItemNumber,
PartType,
Side,
VehicleLocation,
MyProPrice
)
SELECT
CASE
WHEN LEFT(myParts.MyProDescription, 4) = 'FOIL' THEN 'FOIL'
ELSE LEFT(myParts.PartNumber, 3)
END,
PartNumber,
MyProDescription,
ItemNumber,
PartType,
Side,
VehicleLocation,
MyProPrice
FROM
MyProExport myParts
WHERE
@year BETWEEN myParts.YearFrom AND myParts.YearTo AND
myParts.CarMake = @make AND
REPLACE(myParts.CarModel, ' ', '') = REPLACE(@model, ' ', '') AND
(
myParts.EngineDisplacement = @engine OR
myParts.EngineDisplacement = 'ALL'
) AND
LEFT(myParts.PartNumber, 3) NOT IN ('300','400') -- Exclude these parts if not @UserRoleId = 4
最後のステートメントは、@UserRoleId = 4 の場合にのみ 300 と 400 を表示するように変更する必要があります。私はもう試した:
CASE
WHEN @UserRoleId = 4 THEN LEFT(myParts.Number, 3) NOT IN ('300','400') -- Exclude parts
運悪く…