MS SQL将两个表与异常进行比较
我有两张这样的桌子 昨天的桌子MS SQL将两个表与异常进行比较,sql,sql-server,database,sql-server-2008,Sql,Sql Server,Database,Sql Server 2008,我有两张这样的桌子 昨天的桌子 Column1 Column2 Column3 Column4 John 5584 samsung 2017-08-31 23:43:06.867 Bob 4512 apple 2017-08-31 23:43:06.867 Hana 1881 nokia 2017-08-31 23:43:06.867 Hanz 4866 alcatel 2017-08-
Column1 Column2 Column3 Column4
John 5584 samsung 2017-08-31 23:43:06.867
Bob 4512 apple 2017-08-31 23:43:06.867
Hana 1881 nokia 2017-08-31 23:43:06.867
Hanz 4866 alcatel 2017-08-31 23:43:06.867
Nicol 48633 android 2017-08-31 23:43:06.867 ---gone
今天的桌子
Column1 Column2 Column3 Column4
John 5584 samsung 2017-09-01 23:43:06.867 ---same entry
Bob 4542446 apple 2017-09-01 23:43:06.867 ---change in column2
Hana 1881 halophone 2017-09-01 23:43:06.867 ---change in column3
Hanz 4866 alcatel 2017-09-01 23:43:06.867 ---same entry
Mark 486654 alcatel 2017-09-01 23:43:06.867 ---new entry
我需要选择今天的更改并插入到更改表中。只需选择这两行:
变化表
Bob 4542446 apple 2017-09-01 23:43:06.867
Hana 1881 halophone 2017-09-01 23:43:06.867
我创建了此查询,但无法包含第4列。但是,如果选择不带第4列,则在结果中不会看到第4列:
select Column1, Column2,Column3 from [dbo].[tabletoday]
except
select Column1, Column2,Column3 from [dbo].[Tableyesterday]
尝试从第4列中提取值
SELECT
E.Column1
,E.Column2
,E.Column3
,T.Column4
FROM
(
select Column1, Column2,Column3 from [dbo].[tabletoday]
except
select Column1, Column2,Column3 from [dbo].[Tableyesterday]
) AS E
INNER JOIN [dbo].[tabletoday] AS T
ON
E.Column1 = T.Column1
不同的日子有不同的桌子吗?真的?!?可以是声明表或临时表?因此它只有
Column1
是这两个表之间的键?@jamiec column4。。表ar不带修复程序PKColumn4
中包含所有相同的值这一事实是否表明了这可能是一个问题!?