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子句中使用。显然,我想自动解决它。我该怎么做?
答案 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语句。