gpt4 book ai didi

database - 如果第一列为空,是否可以在 Access 中对第二列执行联接?

转载 作者:搜寻专家 更新时间:2023-10-30 20:05:00 26 4
gpt4 key购买 nike

我有两列丑陋的源数据,我们称它们为 EmpIDSomeCode。通常,EmpID 映射到 EmployeeListing 表。但有时,人们会在 SomeCode 字段中输入员工 ID。

之前在 Excel 中运行此报告的人员通过使用 if 语句执行多个 vlookup 以及运行一些手动检查以确保结果准确来“解决”了这个问题。当我将这些文件移动到 Access 时,我不确定如何最好地处理这种情况。

理想情况下,如果 EmpID 为 null,我希望告诉我的查询在 SomeCode 上执行 Left Join,否​​则在 EmpID 上执行 Left Join >

不幸的是,我无法在源数据中强制验证或任何类似的东西。

这是我正在处理的完整 SQL 查询:

SELECT DDATransMaster.Fulfillment, 

DDATransMaster.ConfirmationNumber,
DDATransMaster.PromotionCode,
DDATransMaster.DirectSellerNumber,
NZ([DDATransMaster]![DirectSellerNumber],[DDATransMaster]![PromotionCode]) AS EmpJoin,
EmployeeLookup.ID AS EmpLookup,

FROM FROM DDATransMaster

LEFT JOIN EmployeeLookup ON NZ([DDATransMaster]![DirectSellerNumber],[DDATransMaster]![PromotionCode]) = EmployeeLookup.[Employee #])

最佳答案

您可以像这样创建一个查询:

SELECT
IIf(EmpID Is Null, SomeCode, EmpID) AS join_field,
field2,
etc
FROM YourTable

或者如果查询将始终在 Access session 中使用,Nz 会更简洁。

SELECT
Nz(EmpID, SomeCode) AS join_field,
field2,
etc
FROM YourTable

当您将该查询连接到您的其他表时,Access 查询设计器可以表示 join_field 与其他表中的某些匹配字段之间的连接。如果您尝试将 IIfNz 作为连接的 ON 子句的一部分,查询设计器将无法在设计中正确显示连接查看 --- 它仍然可以工作,但如果您是 Access SQL 的新手,可能就不那么方便了。

看看这个 SQL 是否给了你想要的结果。

SELECT
dda.Fulfillment,
dda.ConfirmationNumber,
dda.PromotionCode,
dda.DirectSellerNumber,
NZ(dda.DirectSellerNumber,dda.PromotionCode) AS EmpJoin,
el.ID AS EmpLookup
FROM
DDATransMaster AS dda
LEFT JOIN EmployeeLookup AS el
ON NZ(dda.DirectSellerNumber,dda.PromotionCode) = el.[Employee #])

但我会在子查询中使用 Nz 部分。

SELECT
sub.Fulfillment,
sub.ConfirmationNumber,
sub.PromotionCode,
sub.DirectSellerNumber,
sub.EmpJoin,
el.ID AS EmpLookup
FROM
(
SELECT
Fulfillment,
ConfirmationNumber,
PromotionCode,
DirectSellerNumber,
NZ(DirectSellerNumber,PromotionCode) AS EmpJoin
FROM DDATransMaster
) AS sub
LEFT JOIN EmployeeLookup AS el
ON sub.EmpJoin = el.[Employee #])

关于database - 如果第一列为空,是否可以在 Access 中对第二列执行联接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16283116/

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