SQL Server 2008来自特定客户的最新订单

时间:2011-12-18 21:08:24

标签: sql-server sql-server-2008 tsql

SELECT OrdreID, KundeID, OrdreDato, Navn, Farve
FROM   Ordreliste
WHERE  Newest Order date By ????

我需要获得特定客户的最新订单日期,但我完全是空白的!

3 个答案:

答案 0 :(得分:3)

建议另一种可能性:

SELECT TOP 1 OrdreID, KundeID, OrdreDato, Navn, Farve
FROM   Ordreliste
WHERE  KundeID = (your customer)
ORDER BY OrdreDato DESC

如果客户在同一天有两个订单,您只能获得一个订单,但可能不是最新订单。如果按顺序输入订单,您可以通过OrdreID DESC排序来避免这种情况,{{1}}应该始终是唯一的。

答案 1 :(得分:1)

要获取特定客户的最新日期,您可以使用MAX汇总功能。

SELECT MAX(OrdreDato)
FROM   Ordreliste
WHERE  Customer = 'YourCustomer'
  

<强> MAX
  返回表达式中的最大值。

答案 2 :(得分:0)

如果您想拥有超过1个客户的最后订单列表(例如:显示特定国家/地区的所有人的最后订单日期),您可以使用具有排名功能的公用表表达式:

WITH CTE_Last_Orders AS ( SELECT ROW_NUMBER()OVER(KundeID的分区,KundeID DESC的ORDER)作为LastOrder,OrdreID,KundeID,OrdreDato,Navn,Farve 来自Ordreliste 在哪里KundeID IN() ) SELECT KundeID,OrdreDato FROM CTE_Last_Orders WHERE LastOrder = 1;