如果不能建立dblink,那么就只能导出两行表,通过spool导出就可以。然后通过系统级别的命令去比对。我记得linux是有比较两个文件不同行的功能的。
如果认为两个都导出比较麻烦,那就导出一个,在导入另外一个库(注意变换名字,否则表明重复就麻烦了),然后再对比。
你好!
先获取不重复的ID,即x、y表的不重复并集,观察x、y表结构类似,通过union进行排重即可。
使用第一步获取的数据进行左链接x、y表的扩展表(第3步)。
分别对x、y表进行分组并合计,针对图片中y表中ID为A的记录出现多次,最后显示为ID为A的盘点数量为2,这样的数据进行处理,以方便最后显示。
通过(库存数-盘点数)得到比对字段值。
SELECTt.ID,
IFNULL(t.`库存数量`, 0) `库存数量`,
IFNULL(t.`盘点数量`, 0) `盘点数量`,
(
IFNULL(t.`库存数量`, 0) - IFNULL(t.`盘点数量`, 0)
) `比对`
FROM
(
SELECT
a.ID ID,
p1.`库存数量`,
p2.`盘点数量`
FROM
(
SELECT
ID
FROM
x
UNION
SELECT
ID
FROM
y
) a
LEFT JOIN (
SELECT
ID,
sum(`库存数量`) `库存数量`
FROM
x
GROUP BY
ID
) p1 ON a.id = p1.id
LEFT JOIN (
SELECT
ID,
sum(`盘点数量`) `盘点数量`
FROM
y
GROUP BY
ID
) p2 ON a.id = p2.id
) t
ORDER BY
ID
希望对你有帮助!
比较的数据库分别称为“源”和“目标”。说明:数据库项目不包含任何数据。因此,在数据比较中数据库项目不能作为源或目标。比较数据时,会生成数据 *** 作语言 (DML) 脚本,使用该脚本可以通过更新目标数据库中的某些或全部数据来同步不同的数据库。完成数据比较后,结果会出现在 Visual Studio 的“数据比较”窗口中。有关更多信息,请参见比较数据库数据概述。说明:还可以比较两个数据库的架构或同一数据库的两个版本的架构。有关更多信息,请参见如何:比较两个数据库的架构。比较数据库数据比较两个数据库的数据在“数据”菜单上指向“数据比较”,然后单击“新建数据比较”。将出现“数据比较”向导。而且,会打开“数据比较”窗口,并且 Visual Studio 会自动为其指定一个名称,如 DataCompare1。在“数据比较”向导中,确定源数据库和目标数据库。如果“源数据库”列表或“目标数据库”列表为空,请单击“新建连接”。在“连接属性”对话框中,确定数据库所驻留的服务器以及连接数据库时将要使用的身份验证类型。然后,单击“确定”关闭“连接属性”对话框并返回到“数据比较”向导。在“数据比较”向导的第一页上,验证每个数据库的信息均是正确的,指定要在结果中包括的记录,然后单击“下一页”。“数据比较”向导的第二页将出现并显示数据库中表和视图的层次结构列表。说明:表和视图必须满足两个条件才会出现在列表中。第一个条件是,源数据库对象和目标数据库对象的架构必须匹配。第二个条件是,该列表中仅显示具有主键或唯一键的表和视图。如果没有同时满足这两个条件的表或视图,则该列表将为空。选中要比较的表和视图所对应的复选框。或者可以展开数据库对象的节点,然后选中要比较的对象中的列所对应的复选框。说明:要比较的每个表或视图都必须定义匹配的主键、匹配的索引或唯一的键。否则,会从将比较的表的列表中将该表移除。对于一些对象而言,可以使用“比较键”列指定要作为数据比较依据的键。例如,可以指定使数据比较依据主键列还是依据其他(唯一可标识)键列。单击“完成”。比较开始。说明:通过打开“数据”菜单,单击“数据比较”,再单击“停止数据比较”,可以停止正在进行的数据比较 *** 作。完成比较后,可以查看两个数据库之间的数据差异。还可以更新目标数据库中的部分或全部数据,以与源数据库中的数据匹配。有关更多信息,请参见如何:查看数据差异和如何:同步数据库数据。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)