我正在尝试获取COUNT的结果作为我 View 中的一列。
请查看下面的查询,以演示所需的演示(这只是出于演示目的)
SELECT
ProductID,
Name,
Description,
Price,
(SELECT COUNT(*) FROM ord WHERE ord.ProductID = prod.ProductID) AS TotalNumberOfOrders
FROM tblProducts prod
LEFT JOIN tblOrders ord ON prod.ProductID = ord.ProductID
这显然行不通...但是我想知道这样做的正确方法是什么?
我正在使用SQL Server
最佳答案
如果删除了该联接,则查询实际上将起作用-它实际上并未使用,并且会导致inner select subquery中的ord表与已联接的ord表发生冲突:
SELECT
ProductID,
Name,
Description,
Price,
(SELECT COUNT(*) FROM ord WHERE ord.ProductID = prod.ProductID) AS TotalNumberOfOrders
FROM tblProducts prod
另外,您实际上可以结合使用表和
Group By
:SELECT
ProductID,
Name,
Description,
Price,
COUNT(ord.ProductID) AS TotalNumberOfOrders
FROM tblProducts prod
LEFT JOIN tblOrders ord ON prod.ProductID = ord.ProductID
GROUP BY
ProductID,
Name,
Description,
Price
关于“查看为”列中的SQL计数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2529490/