MS Access,如何将参数传递给子查询?

时间:2011-09-23 14:00:06

标签: sql ms-access parameters subquery

我有两张桌子。一个包含我的所有客户,另一个包含所有订单。 我想创建一个如下所示的SQL查询:

SELECT c.CustomerID, c.Firstname, c.Lastname, 
       (
        SELECT count(orderID) 
          FROM tbl_orders o 
         WHERE o.CustomerID = c.CustomerID
       ) as OrderCount
  FROM tbl_customers c;

我遇到的问题是访问不断向我询问参数“CustomerID”,该参数将在子选择WHERE子句中使用。显然,我想自动解决它。我该怎么做?

2 个答案:

答案 0 :(得分:2)

没有明显的理由,它应该有效。也许你在你的一个领域犯了一个错误。检查CustomerID是否属于tbl_orders& tbl_customers。

您可以通过以下链接找到有关子查询的一些信息:SubQueryDoc

答案 1 :(得分:2)

为什么不尝试使用加入和群组?它对我来说似乎更简单,更丰富。

SELECT c.CustomerID, c.Firstname, c.Lastname, count(o.orderId) as Orders, max(o.OrderDate) as LastOrder
FROM tbl_customers c LEFT JOIN tbl_orders o 
ON o.CustomerID = c.CustomerID
GROUP BY c.CustomerID, c.Firstname, c.Lastname

可以在查询设计视图中直观地设计这样的查询。然后,您可以切换到SQL View,并复制或编辑生成的SQL语句。