需要帮助构造SQL查询以查找绑定到相同键值的冲突吗

需要帮助构造SQL查询以查找绑定到相同键值的冲突吗,sql,ms-access-2007,Sql,Ms Access 2007,我正在努力将单个Access数据库合并到单个SQL数据库中,但需要首先解决冲突 例如,每个数据库中保存课程/班级信息(与学校相关)的表都使用[course ID]作为键值,但该表中的其他列不一定在所有单个Access数据库中都匹配。因此,多个数据库中可能存在[Course ID]为“0106”,我需要确保与该[Course ID]关联的其他19列在其他access数据库中是相同的 我已经将所有access数据库中的数据编译成access数据库,作为所有重复/冲突数据的集合 我已经开发了一个查询来

我正在努力将单个Access数据库合并到单个SQL数据库中,但需要首先解决冲突

例如,每个数据库中保存课程/班级信息(与学校相关)的表都使用[course ID]作为键值,但该表中的其他列不一定在所有单个Access数据库中都匹配。因此,多个数据库中可能存在[Course ID]为“0106”,我需要确保与该[Course ID]关联的其他19列在其他access数据库中是相同的

我已经将所有access数据库中的数据编译成access数据库,作为所有重复/冲突数据的集合

我已经开发了一个查询来查找所有重复的[Course ID]值,但是我需要另一个查询来查找记录之间任何其他不一致的数据

如何构造SQL查询以查找具有重复[Course ID]值的记录,但仅查找其他列之一不一致的记录

我有两张桌子在用;CHI(字段Expr1000,学校)和CRS(字段Expr1000,课程ID,课程名称)

我使用的atm查询是:

SELECT CRS.[Course ID], CRS.[Course title], CHI.Name
FROM CHI RIGHT JOIN CRS ON CHI.Expr1000 = CRS.Expr1000
WHERE (
    ((CRS.[Course ID]) In 
    (SELECT [Course ID] FROM [CRS] As Tmp GROUP BY [Course ID] HAVING Count(*)>1 ))
    AND ((CRS.Expr1000)=[CHI].[School]))
ORDER BY CRS.[Course ID];
这将生成一个具有重复[Course ID]的所有记录的列表,尽管我更喜欢一个列表,该列表将排除具有给定[Course ID]的所有记录都具有匹配的[Course title]的情况

例如,如果课程ID=106的所有记录也具有匹配的[课程名称],则应将其排除在外


我不确定是应该尝试将所有内容合并到一个查询中,还是创建多个查询来缩减数据,我也不确定如何为我需要的数据构造查询。

您可以这样做:

SELECT *
FROM table1 
LEFT JOIN table2 ON table1.key = table2.key
    and (
        table1.property1 <> table2.property1
        or table1.SomeOtherProperty <> table2.SomeOtherProperty
        -- etc
    )
选择*
来自表1
左键连接table1.key上的table2=table2.key
及(
表1.物业1表2.物业1
或表1.SomeOtherProperty表2.SomeOtherProperty
--等
)

这将从具有匹配键的表中返回记录,但表中至少有一列不匹配-注意,在此处使用列存根,插入您自己的列名。

能否发布您创建的查询以查找重复项以及要检查的字段的名称?