【问题标题】:SQL Server : please confirm if my query provides correct resultsSQL Server:请确认我的查询是否提供正确的结果
【发布时间】:2019-01-02 03:41:56
【问题描述】:

我想显示哪些订单包含两个以上的产品?

显示订单号、订单价值和订单包含的产品数量。

仅供参考,我添加了 2 个额外的列,因为结果会更好看。

WITH RESULTS AS
(
    SELECT 
        *,
        COUNT(O2.SalesOrderID) OVER (PARTITION BY O2.SalesOrderID) AS COUNTS 
    FROM 
        AdventureWorks2014.Sales.SalesOrderDetail AS O2
    --  WHERE COUNTS > 1
    --  ORDER BY SalesOrderID ASC
)
SELECT 
    O.SalesOrderID,
    p.Name, P.ProductID, R.COUNTS as [Products Amount],
    R.LineTotal, R.OrderQty
FROM 
    RESULTS AS R
INNER JOIN 
    AdventureWorks2014.Sales.SalesOrderDetail AS O ON R.SalesOrderID = O.SalesOrderID
RIGHT JOIN 
    AdventureWorks2014.Production.Product as P ON P.ProductID = R.ProductID
WHERE
    R.COUNTS > 1
ORDER BY 
    O.SalesOrderID ASC

CLICK HERE TO SEE THE NEW IMAGE PLEASE

【问题讨论】:

  • 请提供一个最小、完整和可验证的示例 (MCVE) meta.stackoverflow.com/questions/333952/…
  • SQL Server 为数据和查询返回正确的结果。如果它返回了意外的东西,那就是查询和/或数据假设的问题。在 SO 上没有什么可以“确认”的。
  • 大家好,我在查询中添加了一张图片,显示了我添加连接时出现的问题
  • 我做对了,我将连接移动到包含计数的 RESULTS 查询,然后在 COUNTS 上放置一个 where 子句并完成工作

标签: sql-server


【解决方案1】:

我做对了,我将连接移至包含计数的 RESULTS 查询,然后在 COUNTS 上放置一个 where 子句并完成工作

    WITH RESULTS AS
(
    SELECT O2.SalesOrderID
        ,O2.ProductID
        ,P.Name AS [Product Name]
        ,O2.UnitPrice
        ,O2.OrderQty
        ,O2.LineTotal
        ,COUNT(O2.SalesOrderID)OVER(PARTITION BY O2.SalesOrderID)  AS COUNTS 
    FROM AdventureWorks2014.Sales.SalesOrderDetail AS O2
    INNER JOIN AdventureWorks2014.Sales.SalesOrderHeader AS H ON O2.SalesOrderID = H.SalesOrderID
    INNER JOIN AdventureWorks2014.Production.Product as P ON P.ProductID = O2.ProductID
)

SELECT R.SalesOrderID
    ,R.[Product Name]
    ,R.ProductID
    ,R.COUNTS AS [Products Amount Per Order]
    ,R.OrderQty
    ,R.UnitPrice
    ,R.LineTotal AS [Total Payment Per Order]

FROM RESULTS AS R
WHERE R.COUNTS > 1
ORDER BY SalesOrderID ASC

【讨论】:

    猜你喜欢
    • 2019-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多