选择查询中一个单元格中的多个值

时间:2019-06-10 22:24:29

标签: sql ms-access

我正在尝试执行选择查询以显示两个表中的值。以“ Customers”和“ Orders”为例。在customers表中,它只有CustomerID(主键)和CustomerName(没有重复项)。Orders表显示了CustomerName(外键)和Order#。

当客户在“订单”表中有多个订单时,它显示如下

Jon - Order1
Jon - Order2
Luke - Order1
Luke - ORder2
Luke - Order3
Mark - Order1

如何获取选择查询以使其显示如下

Jon - Order1, Order2
Luke - Order1, Order2, Order3
Mark - Order1

它不必用逗号分隔。堆栈字段也将起作用。我的最终目标是要有一个“订单表单”,在表格/

的单个“订单”字段中列出每个客户及其所有订单

表单的示例将是一个带有CustomerName的文本框,以及另一个列出每个订单的文本框

当前SQL

SELECT tblCustomers.CustomerName, tblOrders.Order#
From tblCustomers INNER JOIN tblOrders ON tblCustomers.CustomerName = tblOrders.CustomerName

1 个答案:

答案 0 :(得分:1)

MS Access本身不提供此功能,因此,您需要使用类似于Allen Browne的ConcatRelated函数的VBA函数。

在您的示例中,您可以通过以下方式使用此功能:

select
    t.customername, 
    ConcatRelated("[order#]", "tblorders", "customername = '" & t.customername & "'") 
from
    tblcustomers t

但是,我建议不要使用子窗体来表示这种数据。


此外,将表链接到客户名称而不是 ID 确实很奇怪。