SELECT a.[Acc No], a.[key], a.PayDate, a.[Code] ,TaxAmount=CASE WHEN Code1 IS NULL THEN -c.TaxAmount WHEN Code1 = Code2 THEN b.Order2 ELSE 0 END ,[TaxRate]=CASE WHEN Code1 IS NULL THEN c.[TaxRate] WHEN Code1 = Code2 THEN c.[TaxRate] ELSE 0 END ,[GrossAmount]=CASE WHEN Code1 IS NULL THEN -c.[GrossAmount] WHEN Code1 = Code2 THEN b.Order1 ELSE b.Order1 END FROM dbo.datasheet aCROSS APPLY ( VALUES (NULL, NULL, NULL, NULL) ,(NewOrder_Code, [NewOrder ( code 6)], [TaxOnNewOrder_Code], [TaxOnNewOrder ( code 06)]) ,([NewOrderDiv_Code ], [NewOrderDiv_Code ( code 37)], NULL, NULL)) b (Code1, [Order1], Code2, [Order2])INNER JOIN dbo.originalsheet c ON a.[Acc No] = c.[AccountNo] AND a.[key] = c.[key] AND a.PayDate = c.PayDate AND a.[Code] = c.[Code]