IIF 语句 MS ACCESS VBA SQL
IIF statement MS ACCESS VBA SQL
我有 3 table
ConnectivityFile
我有一些属性的 ID
CHAINDD
我有相同属性的酒店代码(可以重复)
Export
我想要所有酒店代码及其 ID(前一个 tables 的连接)
我可以通过下面的查询来实现
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
现在我面临的问题是 table CHAINDD 中的酒店代码不存在于 table ConnectivityFile 中。我想指出 "Not Connected" 作为导出 table 上的 ID。
如何实现?当我做了一些尝试和错误但没有成功时,我知道有 IIF 声明。您将 IIf 语句放在哪里?
非常感谢您的帮助和时间
只要您的查询确实有效,IIF 就会像这样:
query2 = "SELECT IIF(ISNULL(T.HOTELCODE), ""Not Connected"", ConnectivityFile.ID) 作为
[酒店编号],ConnectivityFile.HotelCode
来自连接文件
LEFT JOIN (SELECT DISTINCT CHAINDD.HOTELCODE as [Hotel Code] from CHAINDD) as T
ON ConnectivityFile.HotelCode = T.[酒店代码]"
基本上,如果有代码,就使用它,否则放一个字符串留在"Not connected"
请注意,导出中的酒店代码字段必须能够处理非唯一数据 - 即:不是主键。
我有 3 table
ConnectivityFile
我有一些属性的 ID
CHAINDD
我有相同属性的酒店代码(可以重复)
Export
我想要所有酒店代码及其 ID(前一个 tables 的连接)
我可以通过下面的查询来实现
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
现在我面临的问题是 table CHAINDD 中的酒店代码不存在于 table ConnectivityFile 中。我想指出 "Not Connected" 作为导出 table 上的 ID。
如何实现?当我做了一些尝试和错误但没有成功时,我知道有 IIF 声明。您将 IIf 语句放在哪里?
非常感谢您的帮助和时间
只要您的查询确实有效,IIF 就会像这样:
query2 = "SELECT IIF(ISNULL(T.HOTELCODE), ""Not Connected"", ConnectivityFile.ID) 作为
[酒店编号],ConnectivityFile.HotelCode
来自连接文件
LEFT JOIN (SELECT DISTINCT CHAINDD.HOTELCODE as [Hotel Code] from CHAINDD) as T
ON ConnectivityFile.HotelCode = T.[酒店代码]"
基本上,如果有代码,就使用它,否则放一个字符串留在"Not connected"
请注意,导出中的酒店代码字段必须能够处理非唯一数据 - 即:不是主键。