sql - Comparing values from different views -
i got 6 views, want compare. easier this, lets bring 2 now.
views consists of 3 columns;
schema_name varchar(5) name varchar(250) hash_value varbinary(max) i want compare hashvalues between views.
then can inner join them that
select ch.name db1.dbo.v_tech_pvchecksums ch inner join db2.dbo.v_tech_pvchecksums au on au.hashvalue=ch.hashvalue and print names ch meet requirement set in join clause. doesn't work like to. problem is, when got matching rows in both views, there 1 row in au, doesn't have it's equivalent in ch table. query wont show row au table. tried right outer join, shows records au, doesn't meet condition.
output want achieve should looks that:
ch_name , au_name dq_1000_rundq , null <- don't match dq_1001_salesnullvalues2weeks , dq_1001_salesnullvalues2weeks <- match dq_1002_salesdifference2weeks , null <- dont null , somerecordwhichisonlyinau <- row in au ch should kind of pattern comparing to, respecting above, when there no record in ch, in au
edit: sample data au:
dbo dq_1000_rundq 0x5009848aa9bd90cd6c89ce99d3f8142e819279d1 dbo dq_1001_salesnullvalues2weeks 0x8838185422ebe35104dc92b24d898d54a97cf2ee dbo dq_1002_salesdifference2weeks 0xf24e2240de0f122a47425d1b4d878dac81aba596 dbo somerecordwhichisonlyinau 0xf24e2240de0f122a47425d1b4d878dac81aba596 ch:
dbo dq_1000_rundq 0x1a1605a5ff101ed0d6acfcfc996989d28dc92533 dbo dq_1001_salesnullvalues2weeks 0x8838185422ebe35104dc92b24d898d54a97cf2ee dbo dq_1002_salesdifference2weeks 0x4bcb9b19fdcd5409257a7375abf907e45c15509b as can see, second rows match themselves.
your question unclear, according desired output, need full outer join
select t.name,p.name db1.dbo.v_tech_pvchecksums t full outer join db2.dbo.v_tech_pvchecksums p on t.hashvalue=p.hashvalue after edit : if want is: when appear on both , equal -> take both, when appear on both hash not equal > take ch , when appear on ch - dont take , when appear on au > take it.
select case when p.name not null , p.hashvalue <> t.hashvalue null else t.name end name1 , p.name db2.dbo.v_tech_pvchecksums t left outer join db1.dbo.v_tech_pvchecksums p on t.name=p.name
Comments
Post a Comment