首页 > 解决方案 > 在使用 Northwind DB 制作 SQL 过程时需要帮助吗?

问题描述

我一直在尝试使用 Northwind 数据库创建一个 sql 查询来创建一个存储过程,以帮助我获取所有 productID 和购买它的第一个日期。

选择不能有重复的值(这是我一直在努力的地方)

我尝试过“不同”或“内部连接(选择....)”

使用的 Northwind 表:

订单详情 -> 有 ProductID 和 OrderID

OrderID -> 有 OrderDate

这是我到目前为止所得到的:

Create PROC GetProducts
as

   Select DISTINCT Products.ProductID, Orders.OrderDate 
   from [Order Details]
   inner join Products on [Order Details].ProductID = Products.ProductID
   inner join Orders on [Order Details].OrderID = Orders.OrderID

Exec GetProducts

输出:

没有预期的输出

输出应如下所示,没有重复值

预期产出

标签: sql-servertsqlstored-proceduresnorthwind

解决方案


您需要使用 group by 这样做:

SELECT
    Products.ProductID
    , MIN(Orders.OrderDate)
FROM
    [Order Details]
    INNER JOIN Products
        ON [Order Details].ProductID = Products.ProductID
    INNER JOIN Orders
        ON [Order Details].OrderID = Orders.OrderID
GROUP BY
    Products.ProductID;

推荐阅读