【发布时间】:2021-01-11 06:00:01
【问题描述】:
我是 MS Access 的新手,需要将表 2 中的组名称字段添加到表 1(见下文)。
表 1 列出了所有发票行项目交易记录。表 2 按位置和船长列出了定价类别。表 2 中的组名字段必须与表 1 中的位置代码匹配,并且表 1 中的船长必须介于表 2 中的最小和最大长度之间。
我创建了一个带有左连接的查询,并使用表达式构建器来确保拉入表 1 的组名满足表 2 中的长度要求。
SELECT
q_Step2_AMR.*,
IIf(
[HS Boat Length]<=[t_BLG]![Max] And [HS Boat Length]>=[t_BLG]![Min],
[t_BLG]![Group Name],
"test"
) AS [Local Boat Length Group]
FROM q_Step2_AMR
LEFT JOIN t_BLG ON q_Step2_AMR.[Location Code] = t_BLG.[Location Code]
问题在于,每次表 2 中的位置代码与表 1 中记录的位置代码匹配时,它都会为表 1 中的每条记录创建重复记录。
【问题讨论】:
-
请以文字(而非图片)形式向我们展示您当前的查询。
-
我想这就是你要找的。在我之前的示例中,查询 q_Step2_AMR 是表 1,t_BLG 是表 2。我正在尝试使用 Access 函数而不是 SQL 来解决问题。 SELECT q_Step2_AMR.*, IIf([HS 船长]=[t_BLG]![Min],[t_BLG]![Group Name],"test") AS [本地船长组] FROM q_Step2_AMR LEFT JOIN t_BLG ON q_Step2_AMR.[Location Code] = t_BLG.[Location Code];
-
请edit your question添加这条重要信息。
-
您似乎想要“对齐”行。这在 MS Access 中并非易事。您可能需要考虑切换到功能更全面的数据库...
标签: sql ms-access left-join ms-access-2016