【发布时间】:2015-01-14 20:47:12
【问题描述】:
我有两个不同的表,我只想在一列上使用 distinct。我只想获取最近的记录。我应该在 SQL Server 2008 中编写什么查询?我想使用唯一的 CustomerID 而不是任何其他列。
表 1:Customer
栏目:CustomerID, CustomerName
表 2:Order
列:OrderID, CustomerID, OrderName
我尝试了两个 SQL 查询都不起作用
第一次查询
select Distinct on (CustomerID) CustomerID, CustomerName, OrderID, OrderName
from Customer
left join Order on Customer.CustomerID = Order.CustomerID
第二次查询:
select Max(Distinct ID)
CustomerID, CustomerName, OrderID, OrderName
from
Customer
left join
Order on Customer.CustomerID = Order.CustomerID
【问题讨论】:
-
对于在原始(不明确)结果中有多个条目的客户的 OrderID 有何期望?
-
你的问题一点都不清楚。你想在这里做什么?你提到了一些关于最近的记录......什么定义了最近?您发布的任何一个表格中都没有日期列。
-
我认为他只想要每个客户的最新订单。
-
我假设您的客户表对于每个客户只有一条记录,并且当您加入订单时,您将获得多条记录 - 每个订单一条。当您说“最近的记录”时,您的意思是最后一个订单吗?
标签: sql sql-server database sql-server-2008