Monday, June 3, 2013

Identify the Changes in Columns Data

TRY THIS,



--------------------------------- DEFINITION
DECLARE @temp TABLE (SALESID int,UPDATEDATE datetime, COL1 int,COL2 int,COL3 int,COL4 int)
INSERT INTO @temp VALUES(1,getdate()-1,null,64,null,null)
INSERT INTO @temp VALUES(1,getdate(),null,null,null,32)
INSERT INTO @temp VALUES(2,getdate()-1,22,null,null,null)
INSERT INTO @temp VALUES(2,getdate(),22,44,null,55)
---------------------------------- QUERY
DECLARE @cols nvarchar(max), @stmt nvarchar(max)
-- BEGIN CTE
;WITH CTE AS (
SELECT * FROM (
SELECT SALESID, COL1 ,COL2 ,COL3 ,COL4 from (
SELECT *,dense_rank() over (order by updatedate) as [Dense] FROM @temp
) X
WHERE [Dense] <=2
) p
unpivot
(
COLVALUES FOR COLS in (COL1,COL2,COL3,COL4)
) as upvt
) -- END OF CTE
SELECT * FROM (
SELECT SALESID,COLVALUES,COLS FROM CTE
GROUP BY SALESID,COLVALUES,COLS
HAVING COUNT(*) = 1
) AS T
PIVOT
(
MAX(COLVALUES) FOR COLS IN (COL1,COL2,COL3,COL4)
) PVT





Regards, RSingh


No comments:

Post a Comment