问题描述
我一直在尝试使用 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
输出:
输出应该是这样的,没有重复的值
解决方法
您需要使用 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;