0
@UserRoleId = 4 인 경우 검색에 항목을 포함하는 WHERE 절에 조건을 추가해야합니다. 그렇지 않으면 검색에서 제외합니다 (SQL Server).옵션 where 조건 절의 조건문
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은 그냥이를 설정하는 방법에 대한 혼란 스러워요 (300)을 보여 표시하도록 수정 될 필요가있다. 나는 시도했다 :
행운과CASE
WHEN @UserRoleId = 4 THEN LEFT(myParts.Number, 3) NOT IN ('300','400') -- Exclude parts
... 대신 case 문의
큰 경우, 나는 그것이 작동하지만 돌아 오는거야 지금 – devHead
그것을 시도 할 것이다 (400)를 표시합니다 (300)의하지 UserRoleId은 4 만 반환 할 때 400의 UserRoleId입니다 4 ... 나는 또한 '200', '500'과 같은 다른 접두사를 포함하는 나머지 부분이 필요합니다. (한 무리 더) 내 게시물이 충분하지 않으면 사과드립니다. – devHead
몇 가지 변경 사항이 필요한대로 작동했습니다. 감사! – devHead