Compare to rows and find what columns changedHow can I remove duplicate rows?Best way to get identity of...
It took me a lot of time to make this, pls like. (YouTube Comments #1)
4 Spheres all touching each other??
How to avoid being sexist when trying to employ someone to function in a very sexist environment?
Where was Karl Mordo in Infinity War?
Find the number of ways to express 1050 as sum of consecutive integers
How to properly claim credit for peer review?
Why is this code uniquely decodable?
Meth dealer reference in Family Guy
F1 visa even for a three-week course?
What is Crew Dragon approaching in this picture?
Emit zero-width bash prompt sequence from external binary
Do my Windows system binaries contain sensitive information?
What's the purpose of these copper coils with resitors inside them in A Yamaha RX-V396RDS amplifier?
Why didn't Eru and/or the Valar intervene when Sauron corrupted Númenor?
What is the wife of a henpecked husband called?
What's a good word to describe a public place that looks like it wouldn't be rough?
Do any poskim exempt 13-20-year-olds from Mussaf?
What is the meaning of "pick up" in this sentence?
Metadata API deployments are failing in Spring '19
How should I state my MS degree in my CV when it was in practice a joint-program?
How do we edit a novel that's written by several people?
Is my plan for fixing my water heater leak bad?
Do commercial flights continue with an engine out?
What's the rationale behind the objections to these measures against human trafficking?
Compare to rows and find what columns changed
How can I remove duplicate rows?Best way to get identity of inserted row?Add a column with a default value to an existing table in SQL ServerHow to check if a column exists in a SQL Server table?What is the difference between varchar and nvarchar?How to concatenate text from multiple rows into a single text string in SQL server?Inserting multiple rows in a single SQL query?Altering a column: null to not nullFind all tables containing column with specified name - MS SQL ServerCompare two rows of a table and find which columns are changed
CREATE TABLE #mytable (
[Id] [int] IDENTITY(1,1) NOT NULL,
[Reqid] [int] NOT NULL,
[Name] [varchar](150) NULL,
[IDNo] [char](20) NOT NULL,
[DOB] [char](10) NULL,
[Nationality] [char](2) NULL,
[BasicGroup] [char](3) NULL,
[CorporateStatus] [char](1) NULL,
[IndustrialSector] [char](6) NULL,
[ResidencyStatus] [char](1) NULL,
[Gender] [char](1) NULL,
[Income] [char](20) NULL,
[Occupation] [char](4) NULL,
[EmpName] [varchar](150) NULL,
[EmpSec] [char](5) NULL,
[EmpTyp] [char](3) NULL,
[Postcode] [char](5) NULL,
[State] [char](2) NULL,
[Country] [char](2) NULL,
[FQ_CRE_TMS] [datetime] NULL,
[RowNum] int ,
) ON [PRIMARY]
set identity_insert #mytable ON
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14489,170916258,'TEST3_2',050505050505,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'YOLO','L1000',113,NULL,NULL,NULL,'2019-02-28 21:32:48.247',1);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14487,170916258,'TEST2',050505050505,NULL,NULL,NULL,NULL,NULL,NULL,'P',8891126,2171,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 21:29:56.857',2);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14442,170916244,'CUST3_2',050505050505,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'YOLO',NULL,NULL,01540,NULL,NULL,'2019-02-28 15:02:33.993',3);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14483,170916258,'LALA',100101015698,NULL,NULL,NULL,NULL,'01263',NULL,'L',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 21:16:42.293',1);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14440,170916244,'CUSTOMER1_2',100101015698,NULL,NULL,NULL,'M',NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 15:01:24.713',2);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14485,170916258,'CUST3_6',100202025698,NULL,NULL,NULL,NULL,NULL,'F','P',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 21:25:45.800',1);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14484,170916258,'APPLICANT5_2',100202025698,NULL,NULL,NULL,'M','01261','L','L',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 21:17:24.420',2);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14446,170916258,'CUST5_3',100202025698,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,60000,NULL,NULL,'2019-02-28 15:08:49.650',3);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14444,170916258,'CUST5_3',100202025698,NULL,NULL,NULL,NULL,NULL,NULL,'L',NULL,NULL,NULL,NULL,NULL,79660,NULL,NULL,'2019-02-28 15:07:01.790',4);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14486,170916258,'EHH4_4',260404045698,NULL,NULL,NULL,NULL,'01279','S','P',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 21:26:28.967',1);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14448,170916258,'CUST4_3',260404045698,NULL,NULL,NULL,NULL,NULL,'L',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 15:14:35.380',2);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14447,170916258,'CUST4_3',260404045698,NULL,NULL,21,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 15:13:14.670',3);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14445,170916258,'CUST4_3',260404045698,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'K1000',NULL,36500,NULL,NULL,'2019-02-28 15:08:24.090',4);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14443,170916258,'CUTS4_3',260404045698,NULL,NULL,34,NULL,NULL,NULL,NULL,NULL,NULL,'REWQREREW',NULL,NULL,NULL,NULL,NULL,'2019-02-28 15:06:23.213',5);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14488,170916258,'TEST2',780909096398,NULL,NULL,NULL,'L',NULL,'E',NULL,NULL,NULL,'YULU',NULL,NULL,01516,NULL,NULL,'2019-02-28 21:31:46.340',1);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14441,170916244,'CUSTOMER2_2',780909096398,NULL,NULL,NULL,NULL,'031XX',NULL,NULL,NULL,NULL,NULL,NULL,NULL,01572,NULL,NULL,'2019-02-28 15:01:57.953',2);
;with #unpivot_step2 as
(
select reqid, Idno, RowNum, ColName, Vals
From
(
select
isnull(cast(reqid as nvarchar(255)), '') AS reqid,
isnull(cast(Name collate database_default as nvarchar(255)), '') as Name,
isnull(cast(IDNo collate database_default as nvarchar(255)), '') as IDNo,
isnull(cast(DOB collate database_default as nvarchar(255)), '') as DOB,
isnull(cast(BasicGroup collate database_default as nvarchar(255)), '') as BasicGroup,
isnull(cast(Nationality collate database_default as nvarchar(255)), '') as Nationality,
isnull(cast(CorporateStatus collate database_default as nvarchar(255)), '') as CorporateStatus,
isnull(cast(IndustrialSector collate database_default as nvarchar(255)), '') as IndustrialSector,
isnull(cast(ResidencyStatus collate database_default as nvarchar(255)), '') as ResidencyStatus,
isnull(cast(Gender collate database_default as nvarchar(255)), '') as Gender,
isnull(cast(Income collate database_default as nvarchar(255)), '') as Income,
isnull(cast(Occupation collate database_default as nvarchar(255)), '') as Occupation,
isnull(cast(EmpName collate database_default as nvarchar(255)), '') as EmpName,
isnull(cast(EmpSec collate database_default as nvarchar(255)), '') as EmpSec,
isnull(cast(EmpTyp collate database_default as nvarchar(255)), '') as EmpTyp,
isnull(cast(Postcode collate database_default as nvarchar(255)), '') as Postcode,
isnull(cast(State collate database_default as nvarchar(255)), '') as State,
isnull(cast(Country collate database_default as nvarchar(255)), '') as Country,
row_number() over (partition by idno order by cast(FQ_CRE_TMS as datetime) desc) as RowNum
from #mytable
) unpivot_table
unpivot
(
vals for colname in (Name, DOB, BasicGroup, Nationality, CorporateStatus,
IndustrialSector, ResidencyStatus, Gender, Income, Occupation, EmpName, EmpSec,
EmpTyp, Postcode, State, Country)
) unpivot_handle
)
, add_column_name AS
(
select reqid, IDNo, colname,[2] as [From_Value], [1] as [To_Value]
FROM
(
select reqid, IDNo, RowNum, colname, vals
from #unpivot_step2
) pivot_table
pivot
(
max (vals) for RowNum in ([1],[2])
) pivot_handle
where [1] <> [2]
)
select distinct p.*, m.Name
into #step1
from add_column_name as p
inner join #mytable as m
on p.reqid = m.Reqid
select * from #mytable
select * from #step1
This is the result I got after execute the script from above
reqid|IDNo|colname|From_Value|To_Value|Name
170916258|100202025698 |Gender|L|P|APPLICANT5_2
170916258|100202025698 |Gender|L|P|CUST3_6
170916258|100202025698 |Gender|L|P|CUST4_3
170916258|100202025698 |Gender|L|P|CUST5_3
170916258|100202025698 |Gender|L|P|CUTS4_3
170916258|100202025698 |Gender|L|P|EHH4_4
170916258|100202025698 |Gender|L|P|LALA
170916258|100202025698 |Gender|L|P|TEST2
170916258|100202025698 |Gender|L|P|TEST3_2
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|APPLICANT5_2
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|CUST3_6
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|CUST4_3
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|CUST5_3
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|CUTS4_3
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|EHH4_4
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|LALA
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|TEST2
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|TEST3_2
170916258|100202025698 |ResidencyStatus|L|F|APPLICANT5_2
170916258|100202025698 |ResidencyStatus|L|F|CUST3_6
170916258|100202025698 |ResidencyStatus|L|F|CUST4_3
170916258|100202025698 |ResidencyStatus|L|F|CUST5_3
170916258|100202025698 |ResidencyStatus|L|F|CUTS4_3
170916258|100202025698 |ResidencyStatus|L|F|EHH4_4
170916258|100202025698 |ResidencyStatus|L|F|LALA
170916258|100202025698 |ResidencyStatus|L|F|TEST2
170916258|100202025698 |ResidencyStatus|L|F|TEST3_2
170916258|260404045698 |Name|CUST4_3|EHH4_4|APPLICANT5_2
170916258|260404045698 |Name|CUST4_3|EHH4_4|CUST3_6
170916258|260404045698 |Name|CUST4_3|EHH4_4|CUST4_3
170916258|260404045698 |Name|CUST4_3|EHH4_4|CUST5_3
170916258|260404045698 |Name|CUST4_3|EHH4_4|CUTS4_3
170916258|260404045698 |Name|CUST4_3|EHH4_4|EHH4_4
170916258|260404045698 |Name|CUST4_3|EHH4_4|LALA
170916258|260404045698 |Name|CUST4_3|EHH4_4|TEST2
170916258|260404045698 |Name|CUST4_3|EHH4_4|TEST3_2
170916258|260404045698 |ResidencyStatus|L|S|APPLICANT5_2
170916258|260404045698 |ResidencyStatus|L|S|CUST3_6
170916258|260404045698 |ResidencyStatus|L|S|CUST4_3
170916258|260404045698 |ResidencyStatus|L|S|CUST5_3
170916258|260404045698 |ResidencyStatus|L|S|CUTS4_3
170916258|260404045698 |ResidencyStatus|L|S|EHH4_4
170916258|260404045698 |ResidencyStatus|L|S|LALA
170916258|260404045698 |ResidencyStatus|L|S|TEST2
170916258|260404045698 |ResidencyStatus|L|S|TEST3_2
170916258|50505050505 |Name|TEST2|TEST3_2|APPLICANT5_2
170916258|50505050505 |Name|TEST2|TEST3_2|CUST3_6
170916258|50505050505 |Name|TEST2|TEST3_2|CUST4_3
170916258|50505050505 |Name|TEST2|TEST3_2|CUST5_3
170916258|50505050505 |Name|TEST2|TEST3_2|CUTS4_3
170916258|50505050505 |Name|TEST2|TEST3_2|EHH4_4
170916258|50505050505 |Name|TEST2|TEST3_2|LALA
170916258|50505050505 |Name|TEST2|TEST3_2|TEST2
170916258|50505050505 |Name|TEST2|TEST3_2|TEST3_2
How can I get as below result?
+-----------+--------------+------------------+--------------+----------+---------+------------+----------+
| reqid | IDNo | colname | From_Value | To_Value | Name | BasicGroup | Postcode |
+-----------+--------------+------------------+--------------+----------+---------+------------+----------+
| 170916258 | 100202025698 | Gender | L | P | CUST3_6 | NULL | 60000 |
| 170916258 | 100202025698 | Name | APPLICANT5_2 | CUST3_6 | CUST3_6 | NULL | 60000 |
| 170916258 | 100202025698 | ResidencyStatus | L | P | CUST3_6 | NULL | 60000 |
| 170916258 | 100202025698 | IndustrialSector | 1261 | NULL | CUST3_6 | NULL | 60000 |
+-----------+--------------+------------------+--------------+----------+---------+------------+----------+
colname, From_Value, To_Value is based from rowNum = 1 , 2 from #mytable ( want to get any result that got changes)
- Name, BasicGroup, Postcode and other column (gender, DOB, income)[in the result I want] is to find the most update that got result. EG: ID=100202025698, postcode only available in rownum=3 in #mytable and I want show it out.
Any idea how to enhance my script? I want it generally working for every table not for this special case.
migrated from serverfault.com 10 hours ago
This question came from our site for system and network administrators.
add a comment |
CREATE TABLE #mytable (
[Id] [int] IDENTITY(1,1) NOT NULL,
[Reqid] [int] NOT NULL,
[Name] [varchar](150) NULL,
[IDNo] [char](20) NOT NULL,
[DOB] [char](10) NULL,
[Nationality] [char](2) NULL,
[BasicGroup] [char](3) NULL,
[CorporateStatus] [char](1) NULL,
[IndustrialSector] [char](6) NULL,
[ResidencyStatus] [char](1) NULL,
[Gender] [char](1) NULL,
[Income] [char](20) NULL,
[Occupation] [char](4) NULL,
[EmpName] [varchar](150) NULL,
[EmpSec] [char](5) NULL,
[EmpTyp] [char](3) NULL,
[Postcode] [char](5) NULL,
[State] [char](2) NULL,
[Country] [char](2) NULL,
[FQ_CRE_TMS] [datetime] NULL,
[RowNum] int ,
) ON [PRIMARY]
set identity_insert #mytable ON
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14489,170916258,'TEST3_2',050505050505,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'YOLO','L1000',113,NULL,NULL,NULL,'2019-02-28 21:32:48.247',1);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14487,170916258,'TEST2',050505050505,NULL,NULL,NULL,NULL,NULL,NULL,'P',8891126,2171,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 21:29:56.857',2);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14442,170916244,'CUST3_2',050505050505,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'YOLO',NULL,NULL,01540,NULL,NULL,'2019-02-28 15:02:33.993',3);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14483,170916258,'LALA',100101015698,NULL,NULL,NULL,NULL,'01263',NULL,'L',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 21:16:42.293',1);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14440,170916244,'CUSTOMER1_2',100101015698,NULL,NULL,NULL,'M',NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 15:01:24.713',2);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14485,170916258,'CUST3_6',100202025698,NULL,NULL,NULL,NULL,NULL,'F','P',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 21:25:45.800',1);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14484,170916258,'APPLICANT5_2',100202025698,NULL,NULL,NULL,'M','01261','L','L',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 21:17:24.420',2);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14446,170916258,'CUST5_3',100202025698,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,60000,NULL,NULL,'2019-02-28 15:08:49.650',3);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14444,170916258,'CUST5_3',100202025698,NULL,NULL,NULL,NULL,NULL,NULL,'L',NULL,NULL,NULL,NULL,NULL,79660,NULL,NULL,'2019-02-28 15:07:01.790',4);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14486,170916258,'EHH4_4',260404045698,NULL,NULL,NULL,NULL,'01279','S','P',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 21:26:28.967',1);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14448,170916258,'CUST4_3',260404045698,NULL,NULL,NULL,NULL,NULL,'L',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 15:14:35.380',2);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14447,170916258,'CUST4_3',260404045698,NULL,NULL,21,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 15:13:14.670',3);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14445,170916258,'CUST4_3',260404045698,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'K1000',NULL,36500,NULL,NULL,'2019-02-28 15:08:24.090',4);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14443,170916258,'CUTS4_3',260404045698,NULL,NULL,34,NULL,NULL,NULL,NULL,NULL,NULL,'REWQREREW',NULL,NULL,NULL,NULL,NULL,'2019-02-28 15:06:23.213',5);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14488,170916258,'TEST2',780909096398,NULL,NULL,NULL,'L',NULL,'E',NULL,NULL,NULL,'YULU',NULL,NULL,01516,NULL,NULL,'2019-02-28 21:31:46.340',1);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14441,170916244,'CUSTOMER2_2',780909096398,NULL,NULL,NULL,NULL,'031XX',NULL,NULL,NULL,NULL,NULL,NULL,NULL,01572,NULL,NULL,'2019-02-28 15:01:57.953',2);
;with #unpivot_step2 as
(
select reqid, Idno, RowNum, ColName, Vals
From
(
select
isnull(cast(reqid as nvarchar(255)), '') AS reqid,
isnull(cast(Name collate database_default as nvarchar(255)), '') as Name,
isnull(cast(IDNo collate database_default as nvarchar(255)), '') as IDNo,
isnull(cast(DOB collate database_default as nvarchar(255)), '') as DOB,
isnull(cast(BasicGroup collate database_default as nvarchar(255)), '') as BasicGroup,
isnull(cast(Nationality collate database_default as nvarchar(255)), '') as Nationality,
isnull(cast(CorporateStatus collate database_default as nvarchar(255)), '') as CorporateStatus,
isnull(cast(IndustrialSector collate database_default as nvarchar(255)), '') as IndustrialSector,
isnull(cast(ResidencyStatus collate database_default as nvarchar(255)), '') as ResidencyStatus,
isnull(cast(Gender collate database_default as nvarchar(255)), '') as Gender,
isnull(cast(Income collate database_default as nvarchar(255)), '') as Income,
isnull(cast(Occupation collate database_default as nvarchar(255)), '') as Occupation,
isnull(cast(EmpName collate database_default as nvarchar(255)), '') as EmpName,
isnull(cast(EmpSec collate database_default as nvarchar(255)), '') as EmpSec,
isnull(cast(EmpTyp collate database_default as nvarchar(255)), '') as EmpTyp,
isnull(cast(Postcode collate database_default as nvarchar(255)), '') as Postcode,
isnull(cast(State collate database_default as nvarchar(255)), '') as State,
isnull(cast(Country collate database_default as nvarchar(255)), '') as Country,
row_number() over (partition by idno order by cast(FQ_CRE_TMS as datetime) desc) as RowNum
from #mytable
) unpivot_table
unpivot
(
vals for colname in (Name, DOB, BasicGroup, Nationality, CorporateStatus,
IndustrialSector, ResidencyStatus, Gender, Income, Occupation, EmpName, EmpSec,
EmpTyp, Postcode, State, Country)
) unpivot_handle
)
, add_column_name AS
(
select reqid, IDNo, colname,[2] as [From_Value], [1] as [To_Value]
FROM
(
select reqid, IDNo, RowNum, colname, vals
from #unpivot_step2
) pivot_table
pivot
(
max (vals) for RowNum in ([1],[2])
) pivot_handle
where [1] <> [2]
)
select distinct p.*, m.Name
into #step1
from add_column_name as p
inner join #mytable as m
on p.reqid = m.Reqid
select * from #mytable
select * from #step1
This is the result I got after execute the script from above
reqid|IDNo|colname|From_Value|To_Value|Name
170916258|100202025698 |Gender|L|P|APPLICANT5_2
170916258|100202025698 |Gender|L|P|CUST3_6
170916258|100202025698 |Gender|L|P|CUST4_3
170916258|100202025698 |Gender|L|P|CUST5_3
170916258|100202025698 |Gender|L|P|CUTS4_3
170916258|100202025698 |Gender|L|P|EHH4_4
170916258|100202025698 |Gender|L|P|LALA
170916258|100202025698 |Gender|L|P|TEST2
170916258|100202025698 |Gender|L|P|TEST3_2
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|APPLICANT5_2
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|CUST3_6
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|CUST4_3
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|CUST5_3
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|CUTS4_3
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|EHH4_4
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|LALA
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|TEST2
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|TEST3_2
170916258|100202025698 |ResidencyStatus|L|F|APPLICANT5_2
170916258|100202025698 |ResidencyStatus|L|F|CUST3_6
170916258|100202025698 |ResidencyStatus|L|F|CUST4_3
170916258|100202025698 |ResidencyStatus|L|F|CUST5_3
170916258|100202025698 |ResidencyStatus|L|F|CUTS4_3
170916258|100202025698 |ResidencyStatus|L|F|EHH4_4
170916258|100202025698 |ResidencyStatus|L|F|LALA
170916258|100202025698 |ResidencyStatus|L|F|TEST2
170916258|100202025698 |ResidencyStatus|L|F|TEST3_2
170916258|260404045698 |Name|CUST4_3|EHH4_4|APPLICANT5_2
170916258|260404045698 |Name|CUST4_3|EHH4_4|CUST3_6
170916258|260404045698 |Name|CUST4_3|EHH4_4|CUST4_3
170916258|260404045698 |Name|CUST4_3|EHH4_4|CUST5_3
170916258|260404045698 |Name|CUST4_3|EHH4_4|CUTS4_3
170916258|260404045698 |Name|CUST4_3|EHH4_4|EHH4_4
170916258|260404045698 |Name|CUST4_3|EHH4_4|LALA
170916258|260404045698 |Name|CUST4_3|EHH4_4|TEST2
170916258|260404045698 |Name|CUST4_3|EHH4_4|TEST3_2
170916258|260404045698 |ResidencyStatus|L|S|APPLICANT5_2
170916258|260404045698 |ResidencyStatus|L|S|CUST3_6
170916258|260404045698 |ResidencyStatus|L|S|CUST4_3
170916258|260404045698 |ResidencyStatus|L|S|CUST5_3
170916258|260404045698 |ResidencyStatus|L|S|CUTS4_3
170916258|260404045698 |ResidencyStatus|L|S|EHH4_4
170916258|260404045698 |ResidencyStatus|L|S|LALA
170916258|260404045698 |ResidencyStatus|L|S|TEST2
170916258|260404045698 |ResidencyStatus|L|S|TEST3_2
170916258|50505050505 |Name|TEST2|TEST3_2|APPLICANT5_2
170916258|50505050505 |Name|TEST2|TEST3_2|CUST3_6
170916258|50505050505 |Name|TEST2|TEST3_2|CUST4_3
170916258|50505050505 |Name|TEST2|TEST3_2|CUST5_3
170916258|50505050505 |Name|TEST2|TEST3_2|CUTS4_3
170916258|50505050505 |Name|TEST2|TEST3_2|EHH4_4
170916258|50505050505 |Name|TEST2|TEST3_2|LALA
170916258|50505050505 |Name|TEST2|TEST3_2|TEST2
170916258|50505050505 |Name|TEST2|TEST3_2|TEST3_2
How can I get as below result?
+-----------+--------------+------------------+--------------+----------+---------+------------+----------+
| reqid | IDNo | colname | From_Value | To_Value | Name | BasicGroup | Postcode |
+-----------+--------------+------------------+--------------+----------+---------+------------+----------+
| 170916258 | 100202025698 | Gender | L | P | CUST3_6 | NULL | 60000 |
| 170916258 | 100202025698 | Name | APPLICANT5_2 | CUST3_6 | CUST3_6 | NULL | 60000 |
| 170916258 | 100202025698 | ResidencyStatus | L | P | CUST3_6 | NULL | 60000 |
| 170916258 | 100202025698 | IndustrialSector | 1261 | NULL | CUST3_6 | NULL | 60000 |
+-----------+--------------+------------------+--------------+----------+---------+------------+----------+
colname, From_Value, To_Value is based from rowNum = 1 , 2 from #mytable ( want to get any result that got changes)
- Name, BasicGroup, Postcode and other column (gender, DOB, income)[in the result I want] is to find the most update that got result. EG: ID=100202025698, postcode only available in rownum=3 in #mytable and I want show it out.
Any idea how to enhance my script? I want it generally working for every table not for this special case.
migrated from serverfault.com 10 hours ago
This question came from our site for system and network administrators.
add a comment |
CREATE TABLE #mytable (
[Id] [int] IDENTITY(1,1) NOT NULL,
[Reqid] [int] NOT NULL,
[Name] [varchar](150) NULL,
[IDNo] [char](20) NOT NULL,
[DOB] [char](10) NULL,
[Nationality] [char](2) NULL,
[BasicGroup] [char](3) NULL,
[CorporateStatus] [char](1) NULL,
[IndustrialSector] [char](6) NULL,
[ResidencyStatus] [char](1) NULL,
[Gender] [char](1) NULL,
[Income] [char](20) NULL,
[Occupation] [char](4) NULL,
[EmpName] [varchar](150) NULL,
[EmpSec] [char](5) NULL,
[EmpTyp] [char](3) NULL,
[Postcode] [char](5) NULL,
[State] [char](2) NULL,
[Country] [char](2) NULL,
[FQ_CRE_TMS] [datetime] NULL,
[RowNum] int ,
) ON [PRIMARY]
set identity_insert #mytable ON
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14489,170916258,'TEST3_2',050505050505,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'YOLO','L1000',113,NULL,NULL,NULL,'2019-02-28 21:32:48.247',1);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14487,170916258,'TEST2',050505050505,NULL,NULL,NULL,NULL,NULL,NULL,'P',8891126,2171,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 21:29:56.857',2);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14442,170916244,'CUST3_2',050505050505,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'YOLO',NULL,NULL,01540,NULL,NULL,'2019-02-28 15:02:33.993',3);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14483,170916258,'LALA',100101015698,NULL,NULL,NULL,NULL,'01263',NULL,'L',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 21:16:42.293',1);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14440,170916244,'CUSTOMER1_2',100101015698,NULL,NULL,NULL,'M',NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 15:01:24.713',2);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14485,170916258,'CUST3_6',100202025698,NULL,NULL,NULL,NULL,NULL,'F','P',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 21:25:45.800',1);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14484,170916258,'APPLICANT5_2',100202025698,NULL,NULL,NULL,'M','01261','L','L',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 21:17:24.420',2);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14446,170916258,'CUST5_3',100202025698,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,60000,NULL,NULL,'2019-02-28 15:08:49.650',3);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14444,170916258,'CUST5_3',100202025698,NULL,NULL,NULL,NULL,NULL,NULL,'L',NULL,NULL,NULL,NULL,NULL,79660,NULL,NULL,'2019-02-28 15:07:01.790',4);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14486,170916258,'EHH4_4',260404045698,NULL,NULL,NULL,NULL,'01279','S','P',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 21:26:28.967',1);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14448,170916258,'CUST4_3',260404045698,NULL,NULL,NULL,NULL,NULL,'L',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 15:14:35.380',2);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14447,170916258,'CUST4_3',260404045698,NULL,NULL,21,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 15:13:14.670',3);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14445,170916258,'CUST4_3',260404045698,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'K1000',NULL,36500,NULL,NULL,'2019-02-28 15:08:24.090',4);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14443,170916258,'CUTS4_3',260404045698,NULL,NULL,34,NULL,NULL,NULL,NULL,NULL,NULL,'REWQREREW',NULL,NULL,NULL,NULL,NULL,'2019-02-28 15:06:23.213',5);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14488,170916258,'TEST2',780909096398,NULL,NULL,NULL,'L',NULL,'E',NULL,NULL,NULL,'YULU',NULL,NULL,01516,NULL,NULL,'2019-02-28 21:31:46.340',1);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14441,170916244,'CUSTOMER2_2',780909096398,NULL,NULL,NULL,NULL,'031XX',NULL,NULL,NULL,NULL,NULL,NULL,NULL,01572,NULL,NULL,'2019-02-28 15:01:57.953',2);
;with #unpivot_step2 as
(
select reqid, Idno, RowNum, ColName, Vals
From
(
select
isnull(cast(reqid as nvarchar(255)), '') AS reqid,
isnull(cast(Name collate database_default as nvarchar(255)), '') as Name,
isnull(cast(IDNo collate database_default as nvarchar(255)), '') as IDNo,
isnull(cast(DOB collate database_default as nvarchar(255)), '') as DOB,
isnull(cast(BasicGroup collate database_default as nvarchar(255)), '') as BasicGroup,
isnull(cast(Nationality collate database_default as nvarchar(255)), '') as Nationality,
isnull(cast(CorporateStatus collate database_default as nvarchar(255)), '') as CorporateStatus,
isnull(cast(IndustrialSector collate database_default as nvarchar(255)), '') as IndustrialSector,
isnull(cast(ResidencyStatus collate database_default as nvarchar(255)), '') as ResidencyStatus,
isnull(cast(Gender collate database_default as nvarchar(255)), '') as Gender,
isnull(cast(Income collate database_default as nvarchar(255)), '') as Income,
isnull(cast(Occupation collate database_default as nvarchar(255)), '') as Occupation,
isnull(cast(EmpName collate database_default as nvarchar(255)), '') as EmpName,
isnull(cast(EmpSec collate database_default as nvarchar(255)), '') as EmpSec,
isnull(cast(EmpTyp collate database_default as nvarchar(255)), '') as EmpTyp,
isnull(cast(Postcode collate database_default as nvarchar(255)), '') as Postcode,
isnull(cast(State collate database_default as nvarchar(255)), '') as State,
isnull(cast(Country collate database_default as nvarchar(255)), '') as Country,
row_number() over (partition by idno order by cast(FQ_CRE_TMS as datetime) desc) as RowNum
from #mytable
) unpivot_table
unpivot
(
vals for colname in (Name, DOB, BasicGroup, Nationality, CorporateStatus,
IndustrialSector, ResidencyStatus, Gender, Income, Occupation, EmpName, EmpSec,
EmpTyp, Postcode, State, Country)
) unpivot_handle
)
, add_column_name AS
(
select reqid, IDNo, colname,[2] as [From_Value], [1] as [To_Value]
FROM
(
select reqid, IDNo, RowNum, colname, vals
from #unpivot_step2
) pivot_table
pivot
(
max (vals) for RowNum in ([1],[2])
) pivot_handle
where [1] <> [2]
)
select distinct p.*, m.Name
into #step1
from add_column_name as p
inner join #mytable as m
on p.reqid = m.Reqid
select * from #mytable
select * from #step1
This is the result I got after execute the script from above
reqid|IDNo|colname|From_Value|To_Value|Name
170916258|100202025698 |Gender|L|P|APPLICANT5_2
170916258|100202025698 |Gender|L|P|CUST3_6
170916258|100202025698 |Gender|L|P|CUST4_3
170916258|100202025698 |Gender|L|P|CUST5_3
170916258|100202025698 |Gender|L|P|CUTS4_3
170916258|100202025698 |Gender|L|P|EHH4_4
170916258|100202025698 |Gender|L|P|LALA
170916258|100202025698 |Gender|L|P|TEST2
170916258|100202025698 |Gender|L|P|TEST3_2
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|APPLICANT5_2
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|CUST3_6
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|CUST4_3
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|CUST5_3
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|CUTS4_3
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|EHH4_4
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|LALA
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|TEST2
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|TEST3_2
170916258|100202025698 |ResidencyStatus|L|F|APPLICANT5_2
170916258|100202025698 |ResidencyStatus|L|F|CUST3_6
170916258|100202025698 |ResidencyStatus|L|F|CUST4_3
170916258|100202025698 |ResidencyStatus|L|F|CUST5_3
170916258|100202025698 |ResidencyStatus|L|F|CUTS4_3
170916258|100202025698 |ResidencyStatus|L|F|EHH4_4
170916258|100202025698 |ResidencyStatus|L|F|LALA
170916258|100202025698 |ResidencyStatus|L|F|TEST2
170916258|100202025698 |ResidencyStatus|L|F|TEST3_2
170916258|260404045698 |Name|CUST4_3|EHH4_4|APPLICANT5_2
170916258|260404045698 |Name|CUST4_3|EHH4_4|CUST3_6
170916258|260404045698 |Name|CUST4_3|EHH4_4|CUST4_3
170916258|260404045698 |Name|CUST4_3|EHH4_4|CUST5_3
170916258|260404045698 |Name|CUST4_3|EHH4_4|CUTS4_3
170916258|260404045698 |Name|CUST4_3|EHH4_4|EHH4_4
170916258|260404045698 |Name|CUST4_3|EHH4_4|LALA
170916258|260404045698 |Name|CUST4_3|EHH4_4|TEST2
170916258|260404045698 |Name|CUST4_3|EHH4_4|TEST3_2
170916258|260404045698 |ResidencyStatus|L|S|APPLICANT5_2
170916258|260404045698 |ResidencyStatus|L|S|CUST3_6
170916258|260404045698 |ResidencyStatus|L|S|CUST4_3
170916258|260404045698 |ResidencyStatus|L|S|CUST5_3
170916258|260404045698 |ResidencyStatus|L|S|CUTS4_3
170916258|260404045698 |ResidencyStatus|L|S|EHH4_4
170916258|260404045698 |ResidencyStatus|L|S|LALA
170916258|260404045698 |ResidencyStatus|L|S|TEST2
170916258|260404045698 |ResidencyStatus|L|S|TEST3_2
170916258|50505050505 |Name|TEST2|TEST3_2|APPLICANT5_2
170916258|50505050505 |Name|TEST2|TEST3_2|CUST3_6
170916258|50505050505 |Name|TEST2|TEST3_2|CUST4_3
170916258|50505050505 |Name|TEST2|TEST3_2|CUST5_3
170916258|50505050505 |Name|TEST2|TEST3_2|CUTS4_3
170916258|50505050505 |Name|TEST2|TEST3_2|EHH4_4
170916258|50505050505 |Name|TEST2|TEST3_2|LALA
170916258|50505050505 |Name|TEST2|TEST3_2|TEST2
170916258|50505050505 |Name|TEST2|TEST3_2|TEST3_2
How can I get as below result?
+-----------+--------------+------------------+--------------+----------+---------+------------+----------+
| reqid | IDNo | colname | From_Value | To_Value | Name | BasicGroup | Postcode |
+-----------+--------------+------------------+--------------+----------+---------+------------+----------+
| 170916258 | 100202025698 | Gender | L | P | CUST3_6 | NULL | 60000 |
| 170916258 | 100202025698 | Name | APPLICANT5_2 | CUST3_6 | CUST3_6 | NULL | 60000 |
| 170916258 | 100202025698 | ResidencyStatus | L | P | CUST3_6 | NULL | 60000 |
| 170916258 | 100202025698 | IndustrialSector | 1261 | NULL | CUST3_6 | NULL | 60000 |
+-----------+--------------+------------------+--------------+----------+---------+------------+----------+
colname, From_Value, To_Value is based from rowNum = 1 , 2 from #mytable ( want to get any result that got changes)
- Name, BasicGroup, Postcode and other column (gender, DOB, income)[in the result I want] is to find the most update that got result. EG: ID=100202025698, postcode only available in rownum=3 in #mytable and I want show it out.
Any idea how to enhance my script? I want it generally working for every table not for this special case.
CREATE TABLE #mytable (
[Id] [int] IDENTITY(1,1) NOT NULL,
[Reqid] [int] NOT NULL,
[Name] [varchar](150) NULL,
[IDNo] [char](20) NOT NULL,
[DOB] [char](10) NULL,
[Nationality] [char](2) NULL,
[BasicGroup] [char](3) NULL,
[CorporateStatus] [char](1) NULL,
[IndustrialSector] [char](6) NULL,
[ResidencyStatus] [char](1) NULL,
[Gender] [char](1) NULL,
[Income] [char](20) NULL,
[Occupation] [char](4) NULL,
[EmpName] [varchar](150) NULL,
[EmpSec] [char](5) NULL,
[EmpTyp] [char](3) NULL,
[Postcode] [char](5) NULL,
[State] [char](2) NULL,
[Country] [char](2) NULL,
[FQ_CRE_TMS] [datetime] NULL,
[RowNum] int ,
) ON [PRIMARY]
set identity_insert #mytable ON
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14489,170916258,'TEST3_2',050505050505,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'YOLO','L1000',113,NULL,NULL,NULL,'2019-02-28 21:32:48.247',1);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14487,170916258,'TEST2',050505050505,NULL,NULL,NULL,NULL,NULL,NULL,'P',8891126,2171,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 21:29:56.857',2);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14442,170916244,'CUST3_2',050505050505,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'YOLO',NULL,NULL,01540,NULL,NULL,'2019-02-28 15:02:33.993',3);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14483,170916258,'LALA',100101015698,NULL,NULL,NULL,NULL,'01263',NULL,'L',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 21:16:42.293',1);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14440,170916244,'CUSTOMER1_2',100101015698,NULL,NULL,NULL,'M',NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 15:01:24.713',2);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14485,170916258,'CUST3_6',100202025698,NULL,NULL,NULL,NULL,NULL,'F','P',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 21:25:45.800',1);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14484,170916258,'APPLICANT5_2',100202025698,NULL,NULL,NULL,'M','01261','L','L',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 21:17:24.420',2);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14446,170916258,'CUST5_3',100202025698,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,60000,NULL,NULL,'2019-02-28 15:08:49.650',3);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14444,170916258,'CUST5_3',100202025698,NULL,NULL,NULL,NULL,NULL,NULL,'L',NULL,NULL,NULL,NULL,NULL,79660,NULL,NULL,'2019-02-28 15:07:01.790',4);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14486,170916258,'EHH4_4',260404045698,NULL,NULL,NULL,NULL,'01279','S','P',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 21:26:28.967',1);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14448,170916258,'CUST4_3',260404045698,NULL,NULL,NULL,NULL,NULL,'L',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 15:14:35.380',2);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14447,170916258,'CUST4_3',260404045698,NULL,NULL,21,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2019-02-28 15:13:14.670',3);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14445,170916258,'CUST4_3',260404045698,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'K1000',NULL,36500,NULL,NULL,'2019-02-28 15:08:24.090',4);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14443,170916258,'CUTS4_3',260404045698,NULL,NULL,34,NULL,NULL,NULL,NULL,NULL,NULL,'REWQREREW',NULL,NULL,NULL,NULL,NULL,'2019-02-28 15:06:23.213',5);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14488,170916258,'TEST2',780909096398,NULL,NULL,NULL,'L',NULL,'E',NULL,NULL,NULL,'YULU',NULL,NULL,01516,NULL,NULL,'2019-02-28 21:31:46.340',1);
INSERT INTO #mytable(id,Reqid,Name,IDNo,DOB,Nationality,BasicGroup,CorporateStatus,IndustrialSector,ResidencyStatus,Gender,Income,Occupation,EmpName,EmpSec,EmpTyp,Postcode,State,Country,FQ_CRE_TMS,RowNum) VALUES (14441,170916244,'CUSTOMER2_2',780909096398,NULL,NULL,NULL,NULL,'031XX',NULL,NULL,NULL,NULL,NULL,NULL,NULL,01572,NULL,NULL,'2019-02-28 15:01:57.953',2);
;with #unpivot_step2 as
(
select reqid, Idno, RowNum, ColName, Vals
From
(
select
isnull(cast(reqid as nvarchar(255)), '') AS reqid,
isnull(cast(Name collate database_default as nvarchar(255)), '') as Name,
isnull(cast(IDNo collate database_default as nvarchar(255)), '') as IDNo,
isnull(cast(DOB collate database_default as nvarchar(255)), '') as DOB,
isnull(cast(BasicGroup collate database_default as nvarchar(255)), '') as BasicGroup,
isnull(cast(Nationality collate database_default as nvarchar(255)), '') as Nationality,
isnull(cast(CorporateStatus collate database_default as nvarchar(255)), '') as CorporateStatus,
isnull(cast(IndustrialSector collate database_default as nvarchar(255)), '') as IndustrialSector,
isnull(cast(ResidencyStatus collate database_default as nvarchar(255)), '') as ResidencyStatus,
isnull(cast(Gender collate database_default as nvarchar(255)), '') as Gender,
isnull(cast(Income collate database_default as nvarchar(255)), '') as Income,
isnull(cast(Occupation collate database_default as nvarchar(255)), '') as Occupation,
isnull(cast(EmpName collate database_default as nvarchar(255)), '') as EmpName,
isnull(cast(EmpSec collate database_default as nvarchar(255)), '') as EmpSec,
isnull(cast(EmpTyp collate database_default as nvarchar(255)), '') as EmpTyp,
isnull(cast(Postcode collate database_default as nvarchar(255)), '') as Postcode,
isnull(cast(State collate database_default as nvarchar(255)), '') as State,
isnull(cast(Country collate database_default as nvarchar(255)), '') as Country,
row_number() over (partition by idno order by cast(FQ_CRE_TMS as datetime) desc) as RowNum
from #mytable
) unpivot_table
unpivot
(
vals for colname in (Name, DOB, BasicGroup, Nationality, CorporateStatus,
IndustrialSector, ResidencyStatus, Gender, Income, Occupation, EmpName, EmpSec,
EmpTyp, Postcode, State, Country)
) unpivot_handle
)
, add_column_name AS
(
select reqid, IDNo, colname,[2] as [From_Value], [1] as [To_Value]
FROM
(
select reqid, IDNo, RowNum, colname, vals
from #unpivot_step2
) pivot_table
pivot
(
max (vals) for RowNum in ([1],[2])
) pivot_handle
where [1] <> [2]
)
select distinct p.*, m.Name
into #step1
from add_column_name as p
inner join #mytable as m
on p.reqid = m.Reqid
select * from #mytable
select * from #step1
This is the result I got after execute the script from above
reqid|IDNo|colname|From_Value|To_Value|Name
170916258|100202025698 |Gender|L|P|APPLICANT5_2
170916258|100202025698 |Gender|L|P|CUST3_6
170916258|100202025698 |Gender|L|P|CUST4_3
170916258|100202025698 |Gender|L|P|CUST5_3
170916258|100202025698 |Gender|L|P|CUTS4_3
170916258|100202025698 |Gender|L|P|EHH4_4
170916258|100202025698 |Gender|L|P|LALA
170916258|100202025698 |Gender|L|P|TEST2
170916258|100202025698 |Gender|L|P|TEST3_2
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|APPLICANT5_2
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|CUST3_6
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|CUST4_3
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|CUST5_3
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|CUTS4_3
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|EHH4_4
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|LALA
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|TEST2
170916258|100202025698 |Name|APPLICANT5_2|CUST3_6|TEST3_2
170916258|100202025698 |ResidencyStatus|L|F|APPLICANT5_2
170916258|100202025698 |ResidencyStatus|L|F|CUST3_6
170916258|100202025698 |ResidencyStatus|L|F|CUST4_3
170916258|100202025698 |ResidencyStatus|L|F|CUST5_3
170916258|100202025698 |ResidencyStatus|L|F|CUTS4_3
170916258|100202025698 |ResidencyStatus|L|F|EHH4_4
170916258|100202025698 |ResidencyStatus|L|F|LALA
170916258|100202025698 |ResidencyStatus|L|F|TEST2
170916258|100202025698 |ResidencyStatus|L|F|TEST3_2
170916258|260404045698 |Name|CUST4_3|EHH4_4|APPLICANT5_2
170916258|260404045698 |Name|CUST4_3|EHH4_4|CUST3_6
170916258|260404045698 |Name|CUST4_3|EHH4_4|CUST4_3
170916258|260404045698 |Name|CUST4_3|EHH4_4|CUST5_3
170916258|260404045698 |Name|CUST4_3|EHH4_4|CUTS4_3
170916258|260404045698 |Name|CUST4_3|EHH4_4|EHH4_4
170916258|260404045698 |Name|CUST4_3|EHH4_4|LALA
170916258|260404045698 |Name|CUST4_3|EHH4_4|TEST2
170916258|260404045698 |Name|CUST4_3|EHH4_4|TEST3_2
170916258|260404045698 |ResidencyStatus|L|S|APPLICANT5_2
170916258|260404045698 |ResidencyStatus|L|S|CUST3_6
170916258|260404045698 |ResidencyStatus|L|S|CUST4_3
170916258|260404045698 |ResidencyStatus|L|S|CUST5_3
170916258|260404045698 |ResidencyStatus|L|S|CUTS4_3
170916258|260404045698 |ResidencyStatus|L|S|EHH4_4
170916258|260404045698 |ResidencyStatus|L|S|LALA
170916258|260404045698 |ResidencyStatus|L|S|TEST2
170916258|260404045698 |ResidencyStatus|L|S|TEST3_2
170916258|50505050505 |Name|TEST2|TEST3_2|APPLICANT5_2
170916258|50505050505 |Name|TEST2|TEST3_2|CUST3_6
170916258|50505050505 |Name|TEST2|TEST3_2|CUST4_3
170916258|50505050505 |Name|TEST2|TEST3_2|CUST5_3
170916258|50505050505 |Name|TEST2|TEST3_2|CUTS4_3
170916258|50505050505 |Name|TEST2|TEST3_2|EHH4_4
170916258|50505050505 |Name|TEST2|TEST3_2|LALA
170916258|50505050505 |Name|TEST2|TEST3_2|TEST2
170916258|50505050505 |Name|TEST2|TEST3_2|TEST3_2
How can I get as below result?
+-----------+--------------+------------------+--------------+----------+---------+------------+----------+
| reqid | IDNo | colname | From_Value | To_Value | Name | BasicGroup | Postcode |
+-----------+--------------+------------------+--------------+----------+---------+------------+----------+
| 170916258 | 100202025698 | Gender | L | P | CUST3_6 | NULL | 60000 |
| 170916258 | 100202025698 | Name | APPLICANT5_2 | CUST3_6 | CUST3_6 | NULL | 60000 |
| 170916258 | 100202025698 | ResidencyStatus | L | P | CUST3_6 | NULL | 60000 |
| 170916258 | 100202025698 | IndustrialSector | 1261 | NULL | CUST3_6 | NULL | 60000 |
+-----------+--------------+------------------+--------------+----------+---------+------------+----------+
colname, From_Value, To_Value is based from rowNum = 1 , 2 from #mytable ( want to get any result that got changes)
- Name, BasicGroup, Postcode and other column (gender, DOB, income)[in the result I want] is to find the most update that got result. EG: ID=100202025698, postcode only available in rownum=3 in #mytable and I want show it out.
Any idea how to enhance my script? I want it generally working for every table not for this special case.
asked 12 hours ago
user3542587user3542587
13
13
migrated from serverfault.com 10 hours ago
This question came from our site for system and network administrators.
migrated from serverfault.com 10 hours ago
This question came from our site for system and network administrators.
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54970549%2fcompare-to-rows-and-find-what-columns-changed%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54970549%2fcompare-to-rows-and-find-what-columns-changed%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown