嗨,不知道有人可以帮我解决这个问题。我有一个数据集,其中我有两列。 A栏/ B栏;我们称之为Table UpdateData。
还有两个具有常设数据的Access表,这些表是这些代码的映射表。一个表是更新前代码(oldCodes),另一个是系统后更新代码(NewCode)。在我的数据集中,列A具有更新前代码,列B具有更新后代码。我的想法是将这两个Access表新旧代码组合到SQL Server(2005)中的一个表中,如下所示To Create Table combinedCodes:
Oldcode display
===== =======
RTYX45 No
GHYUN6 No
BYUER5 Yes
Newcode display
===== =======
VUJNG6 Yes
LERWS8 No
XCRYU7 Yes
code display
===== =======
RTYX45 No
GHYUN6 No
BYUER5 Yes
VUJNG6 Yes
LERWS8 No
XCRYU7 Yes
请注意,这只是一个数据示例,行数远多于显示的数据。
因此,如果我加入updateData和Combined代码,我该如何设置它,以便一个字段(显示)可以显示来自A / B列(或不是)的匹配。当我只加入一列时,让我们说左边的列A连接到来自combinedCodes表的updateData表,我在combinedCodes显示字段中获得了正确的数据,而对于那些不匹配的数据,则为空。
但后来我从Column B引入了另一个连接,使用左连接到CombinedCodes的UpdateData表,并且combinedCodes显示显示旧代码,其中在null之前,我想要的,但也显示旧代码,在使用新代码之前。我对实际发生的事情感到有些混淆,所以这可能不是100%正确但是当将每个查询结果与单个连接进行比较时,查询结果与列A和列B的连接是不同的,尽管添加时数据的数量相同从单独的查询中提取个人数量。
select c.Fields
--,f.Display
,pt.Display
from UpdateData c
INNER JOIN PRE_CODES pt
ON c.columnA = pt.code -- only for pre-codes
--INNER JOIN POST_CODES f
--ON c.columnB = f.code
注释掉的连接和字段用于后置代码,另一个用于预编码。如果我包含左外连接以显示后代码的空值然后引入第二连接和f.display加左连接为字段它不会显示相同的结果,就好像我单独运行每个并组合它们。
这种联接超出了我对连接的理解,我不知道我应该在这做什么,所以对任何可以帮助我的人来说
由于
安德鲁