Thanks sqlsaga for reply, I have used a similar code with a table variable, the number of records inserted into target table through the cursor are about 1000 rows but when done through given query, about 4000 rows are getting returned . I think I am missing logic in the
My Query was :
IF EXISTS(
SELECT 1
FROM Targettbl T
WHERE T.CaseID = @sCaseID
OR (T.CaseID IS NULL
AND T.AccountNumber = @sAccountNumber
AND ISNULL(T.CaseNumber,@sCaseNumber) = @sCaseNumber))
My Query was :
Declare @TVL as Table
(
CaseID int
,LastUpdate datetime
,EntryDate datetime
,UserID varchar(30)
,[System] varchar(4)
,Prin varchar(4)
,Agent varchar(4)
,AccountNumber varchar(16)
,OpenDate datetime
,ExtStatus varchar(1)
,IntStatus varchar(1)
)
INSERT INTO @TVL
SELECT Distinct
S.CaseID, S.ECaRFileDate,S.EntryDate,S.UserID,S.System,S.Prin,S.Agent,
S.AccountNumber,S.OpenDate,substring(S.ExtStatus,1,1) as ExtStatus,S.IntStatus
FROM dbo.uvwView S
LEFT JOIN dbo.tbl1 A
ON S.AccountNumber = A.AccountNumber
LEFT JOIN dbo.tbl2 C
ON S.ECC = C.ECC
LEFT JOIN dbo.tbl3 T
ON S.Col1 = T.Col1 and
S.Col2 = T.Col2 and
S.Col3 = T.Col3
LEFT JOIN dbo.tbl3 D
ON S.Col4 = D.Col1
IF EXISTS(
SELECT Distinct 1
FROM TargetTbl TBLB
INNER JOIN @TVL TVL
ON TBLB.CaseID = TVL.CaseID
OR (TBLB.CaseID IS NULL
AND TBLB.AccountNumber = TVL.AccountNumber
AND ISNULL(TBLB.CaseNumber,TVL.CaseNumber) = TVL.CaseNumber))
BEGIN
UPDATE
END
ELSE
INSERT
END
Srikanth
No comments:
Post a Comment