我正在尝试获取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/

10-13 03:29