Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何比较两个表并获取更改的数据_Sql_Sql Server - Fatal编程技术网

Sql 如何比较两个表并获取更改的数据

Sql 如何比较两个表并获取更改的数据,sql,sql-server,Sql,Sql Server,我有一个这样的查询:这个查询从T\u Order\u头获取数据 select F_Exhibitor,F_Stand from T_Order_Header where F_Exhibition='12004' output -------- F_exhibitor F_stand 2477 C1 2488 C2 2489 C3 我还有另一个疑问:这是从T_参展商位置获取的 select F_ExhibitorCode,F_S

我有一个这样的查询:这个查询从T\u Order\u头获取数据

select F_Exhibitor,F_Stand
from T_Order_Header
where F_Exhibition='12004'

output
--------
F_exhibitor   F_stand
2477           C1
2488           C2
2489           C3
我还有另一个疑问:这是从T_参展商位置获取的

 select F_ExhibitorCode,F_Stand
 from T_ExhibitorLocation
 where F_ExhibitionCode='12004' 

output
--------
F_ExhibitorCode   F_stand
2477              C1
2488              c2
2489              B1
参展商的T_订单标题表和参展商所在地的T_参展商代码相同

我想比较这两个表,并检查任何立场没有改变。如果任何立场没有改变,我想展示一下。

试试这个

select toh.F_Exhibitor,toh.F_Stand
from T_Order_Header toh
INNER JOIN T_ExhibitorLocation tel
ON toh.F_exhibitor= tel.F_ExhibitorCode
WHERE toh.F_stand = tel.F_stand
AND toh.F_Exhibition='12004'

如果要添加指示值是否相等或是否应检查的计算列,可以使用以下方法:

SELECT 
 o.F_Exhibitor,
 o.F_Stand AS OrderHeaderStand, 
 e.F_Stand AS ExhibitorLocationStand,
 CASE 
   WHEN o.F_Stand = e.F_Stand THEN 'Equal'
   WHEN o.F_Stand IS NULL AND e.F_Stand IS NULL THEN 'Equal'
   ELSE 'Check'
 END AS Equal
FROM T_Order_Header o
  INNER JOIN T_ExhibitorLocation e
    ON o.F_exhibitor= e.F_ExhibitorCode
WHERE o.F_Exhibition='12004'

使用
(query1)INTERSECT(query2)
显示两个查询中相同的记录如果我使用此输出,我将得到SIR您将得到
2477 C1 2488 C2
,只需尝试
选择F_参展商,F_展位从F_订单标题中选择F_展会='12004'INTERSECT选择F_参展商代码,F_站在T_ExhibitorLocation,F_ExhibitorCode='12004'
自己尝试这个查询,集合(A,B,C)和(B,C,D)的交集是(B,C)您期望的输出是什么?可能您也应该在预期输出中显示一些空值。不明确的列名“F_展台”。这表明两者都匹配?您将得到2477 C1 2488 C2ok..我的查询如下:从t_订单头更新o集o.F_展台=e.F_展台o内部连接t_展台e.F_展台代码=o.F_展台和o.F_展台=“12004”但如果我在T_order_标题表中有一行,如F_Exhibitor 2486和F_stand null,则这不会更新