Inserting data from two similar tables into one master table in Sql Server -
table1-> id, countryfk, companynametable2-> id, countryfk, companyname, website
i need merge table1 , table2 1 master table. know can done below query -
insert mastertable(id, countryfk, companyname) select * table1 union select * table2; but, have column, website in table2 isn't there in table1. need column in mastertable.
and more importantly, table1 , table2 have repeating companies same countryfk. eg, ibm @ countryfk=123 present twice in table1. , table1 have companyname present in table2.
for eg: ibm @ countryfk = 123 present in table1 , table2. need make sure mastertable not have duplicate companies.
please note companyname need not unique. mastertable can have ibm countryfk = 123 , ibm countryfk = 321.
mastertable cannot have ibm countryfk=123 twice.
imho, if need ensure both companyname , countryfk not duplicate in mastertable, should add unique index on column.
below query selects distinct value in table1 , table2, , insert existence checking both companyname , countryfk.
-- id identity, no need insert value insert mastertable (countryfk, companyname, website) select countryfk, companyname, ( select top(1) website table2 companyname = data.companyname , countryfk = data.countryfk , website not null ) website ( select countryfk, companyname table1 union select countryfk, companyname table2 ) data not exists ( select * mastertable companyname = data.companyname , countryfk = data.countryfk ) group countryfk, companyname
Comments
Post a Comment