IIF语句MS ACCESS VBA SQL

IIF语句MS ACCESS VBA SQL,sql,vba,ms-access,iif,Sql,Vba,Ms Access,Iif,我有三张桌子 ConnectivityFile,其中我有一些属性的ID CHAINDD我有酒店代码,它们可以在相同的酒店重复 导出我想要将所有酒店代码和它们的ID连接到前面的表中的位置 我可以通过下面的查询实现这一点 query2 = "SELECT ConnectivityFile.ID as [Hotel ID], ConnectivityFile.HotelCode FROM ConnectivityFile INNER JOIN (SELECT DISTINCT CHAINDD.H

我有三张桌子

ConnectivityFile,其中我有一些属性的ID

CHAINDD我有酒店代码,它们可以在相同的酒店重复

导出我想要将所有酒店代码和它们的ID连接到前面的表中的位置

我可以通过下面的查询实现这一点

query2 = "SELECT ConnectivityFile.ID as [Hotel ID], ConnectivityFile.HotelCode  
FROM ConnectivityFile 
INNER JOIN (SELECT DISTINCT CHAINDD.HOTELCODE as [Hotel Code] from CHAINDD) as T 
ON ConnectivityFile.HotelCode = T.[Hotel Code]"

DoCmd.RunSQL "INSERT INTO Export " & query2
现在我面临的问题是,假设CHAINEDD表中的酒店代码不在ConnectivityFile表中。我想指出的是,它不像导出表上的ID那样连接

如何才能做到这一点?当我做了一些尝试和错误却没有成功时,我知道有IIF声明。你把IIf声明放在哪里


非常感谢您的帮助和时间

只要您的查询能够正常运行,IIF就会这样运行: query2=选择IIFISNULLT.HOTELCODE,未连接,ConnectivityFile.ID为 [酒店ID],康涅狄格州文件。酒店代码 从康涅狄格文件 左连接从CHAINDD作为T选择不同的CHAINDD.HOTELCODE作为[酒店代码] ON ConnectivityFile.HotelCode=T[酒店代码]

基本上,如果代码在那里,就使用它,否则就放一个未连接的字符串
请注意,导出中的hotel code字段必须能够处理非唯一数据,即:不是主键。

我看到您使用的是内部联接。您熟悉外部联接吗?Not Connected是字符串类型,因此如果Export的[Hotel ID]是整数类型,则会引发异常。请向我们显示数据库架构、示例数据、当前和预期输出。请阅读,这里是学习如何提高问题质量和获得更好答案的好地方。我同意@RuudHelderman的观点。你需要一个外部连接。@RuudHelderman,谢谢你,我需要一个外部连接,就像你建议的那样。我没看见谢谢