다른 방법으로 다음 쿼리를 작성할 수 있습니까?SQL에서 변수에 값을 할당하는 다른 방법
ALTER PROC Proc_AssetManagement_SubscriptionCheck @IMEINumber NVARCHAR(100)
,@PhoneNo NVARCHAR(200)
,@SIMNo NVARCHAR(100)
,@Id INT
,@Message NVARCHAR(MAX) OUTPUT
AS
BEGIN
DECLARE @SimMessage NVARCHAR(200) = ''
DECLARE @PhoneMessage NVARCHAR(200) = ''
SET @Message = ''
SELECT @Message = (
CASE
WHEN COUNT(IMEINumber) > 0
THEN ('IMEI Already Exists\n')
ELSE ' '
END
)
FROM tblAssetSubscriptionDetails
WHERE AssetMgmtId <> @Id
AND (IMEINumber = @IMEINumber)
SELECT @PhoneMessage = (
CASE
WHEN COUNT(PhoneNo) > 0
THEN ('PhoneNo Already Exists\n')
ELSE ' '
END
)
FROM tblAssetSubscriptionDetails
WHERE AssetMgmtId <> @Id
AND (PhoneNo = @PhoneNo)
SELECT @SimMessage = (
CASE
WHEN COUNT(SimNo) > 0
THEN ('SimNo Already Exists')
ELSE ' '
END
)
FROM tblAssetSubscriptionDetails
WHERE AssetMgmtId <> @Id
AND (SIMNo = @SIMNo)
SET @Message = @Message + '' + @PhoneMessage + '' + @SimMessage
END
나는 쿼리의 수를 줄이기 위해 3 가지 쿼리가 아닌 단일 쿼리로 메시지를 가져오고 싶습니다. 내가 할 수 있을까? 그렇다면 어떻게? 내 목적은 이런 형태의 메시지를 받고 싶다는 것입니다.
IMEINumber가 테이블에 있으면 IMEI 번호가 이미 존재 함을 나타냅니다. IMEINumber와 함께 테이블에 SIm 번호가있는 경우 이미 존재하는 IMEI 번호가 표시됩니다. \ nSim No가 이미 존재하는 등등 ...
'IMEINumber', 'PhoneNo' 및'SIMNo'은 어떻게 관련이 있습니까? 그것들은 모두 특정 장치 또는 많은 장치와 관련이 있습니까? – jpw
실제로는 특정 장치와 관련이 있습니다. 그리고 내 질문은 IMEINumber, PhoneNo 및 SimNo에만 국한되지 않습니다. 다른 열이 될 수 있습니다. 내가 원하는 건 어떻게 하나의 단일 쿼리에서 병합 된 메시지를 얻을 수 있습니다 그래서 나는 여러 쿼리를 수행 할 필요가 없습니다. –