gpt4 book ai didi

SQL 连接查找两个数据源之间的不一致

转载 作者:行者123 更新时间:2023-12-04 16:46:48 25 4
gpt4 key购买 nike

我有一个 SQL 挑战正在折磨我的大脑。我正在尝试协调一份应用程序许可证的两份报告。

第一个报告是访问数据库表。它是由我的前任亲手创建和维护的。每当他们安装或卸载应用程序时,他们或多或少都会手动更新表格。它有各种不一致数据的列,包括名称(显示名称)网络ID(SAMAccountName)和计算机名称。每条记录至少有一个这些字段的值。不过,大多数只有 1 或 2 个值。

第二份报告基于 SMS list 。它包含三列:计算机名称的 NetbiosName、SAMAccountName 和显示名称。每条记录都有一个 NetbiosName,但 SAMAccountName 和 displayName 中有一些空值。

我已将这两个作为表导入到 MS SQL Server 2005 数据库中。

我需要做的是获取 Access 表中不在 SMS 表中的每条记录的报告,反之亦然。我认为可以使用格式正确的连接和 where 子句来完成,但我不知道该怎么做。

编辑以添加更多详细信息:
如果记录与三列中的至少一列匹配,则为匹配。因此,我需要访问表中的记录,其中名称、网络 ID 和计算机名称都从 SMS 表中丢失。我可以为任何列执行此操作,但我看不到如何组合所有三列。

最佳答案

根据 Kaboing 的回答和编辑后的问题,解决方案似乎是:

SELECT *
FROM report_1 r1
FULL OUTER JOIN report_2 r2
ON r1.SAMAccountName = r2.SAMAccountName
OR r1.NetbiosName = r2.NetbiosName
OR r1.DisplayName = r2.DisplayName
WHERE r2.NetbiosName IS NULL OR r1.NetbiosName IS NULL

不确定记录是否会出现多次

关于SQL 连接查找两个数据源之间的不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/315196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com