在使用 Northwind DB 制作 SQL 过程时需要帮助吗?

问题描述

我一直在尝试使用 northwind 数据库进行 sql 查询以创建存储过程,以帮助我获取所有产品 ID 和购买的第一个日期。

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

我尝试过“distinct”或“inner join (select ....)”

使用的 northwind Tables:

订单详情 -> 有 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

输出

not expected OutPut

输出应该是这样的,没有重复的值

Expected Output

解决方法

您需要使用 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;