如果有类似的 OrderNo,我正在尝试 Allen Browne ConcatRelated 函数来连接产品名称,但添加此功能后
ConcatRelated("Product.ProductName", "OrderLine", "OrderLine.OrderNo = " & [OrderLine.OrderNo])AS Product
它显示类似于此的错误
但我不知道如何解决。
这是我的询问:
SELECT OrderLine.OrderNo, ConcatRelated("Product.ProductName", "OrderLine", "OrderLine.OrderNo = " & [OrderLine.OrderNo])AS Product ,Sum(OrderLine.Quantity) AS SumOfQuantity, Sum([Quantity]*[Price]) AS Expr1
FROM [Order] INNER JOIN (Product INNER JOIN OrderLine ON Product.[ProductNo] = OrderLine.[ProductNo]) ON Order.[OrderNo] = OrderLine.[OrderNo]
GROUP BY OrderLine.OrderNo;
这是我的 TransactionQuery 看起来没有该功能:
---------------------------------
OrderNo | TotalItems | Price
1 | 4 | $70
2 | 1 | $25
----------------------------------
这是表格:
Customer Table:
--------------------------
CusomerNo(pk) | Name
1 | John Wink
2 | John Wake
--------------------------
Order Table:
----------------------------------
OrderNo(pk) | CustomerNo(fk)
1 | 1
2 | 2
----------------------------------
OrderLine Table:
----------------------------------------------------------
OrderNo(fk) | ProductNo(fk) | Quantity | TotalPayment
1 | 1 | 2 | $20
2 | 2 | 1 | $25
1 | 2 | 2 | $50
----------------------------------------------------------
Product Table:
-----------------------------------
ProductNo(pk) | ProductName | Price
1 | Burger | $10
2 | Pizza | $25
-----------------------------------
编辑: 我粘贴了错误的代码,我更改了代码,当前查询给出了“编译错误。在查询 ConcatRelated("Product.ProductName", "OrderLine", "OrderLine.OrderNo = " & [OrderLine.OrderNo])AS Product "
谢谢你
ProductName 不在 OrderLine 表中,因此 ConcatRelated 将失败。保存查询对象 - qryOrderProducts:
SELECT OrderLine.OrderNo, Product.ProductName
FROM OrderLine INNER JOIN Product ON OrderLine.ProductNo = Product.ProductNo;
然后这有效:
SELECT Order.OrderNo, Sum(Quantity) AS SumQty, Sum([Quantity]*[Price]) AS Total,
ConcatRelated("ProductName","qryOrderProducts","OrderNo = " & [Order].[OrderNo]) AS Products
FROM ([Order] INNER JOIN OrderLine ON Order.OrderNo = OrderLine.OrderNo)
INNER JOIN Product ON OrderLine.ProductNo = Product.ProductNo
GROUP BY Order.OrderNo;
可以修改 ConcatRelated 函数,以便它允许传递 SQL 语句并用它构建记录集。其他作者也有类似的函数可以做到这一点。