0

OrderTable ex の特定の注文の最新の変更を選択するクエリを作成しようとしています。

OrderID|       ChangeDate      | 
-------|-----------------------|
Order1 |2013-03-17 14:40:47.000|
Order2 |2013-03-12 12:34:09.000|
Order3 |2013-03-20 18:30:12.000|
Order1 |2013-03-20 16:09:09.000|
Order2 |2013-03-20 12:39:49.000|

(上記の例から)言うと、必要なのはOrder1、Order2、およびOrde​​r3の最新のエントリです。誰かが同様の状況にありましたか?私はあなたの助けに本当に感謝しています!

4

3 に答える 3

0

これを簡単に行うことができます:

SELECT OrderID,
       MAX(ChangeDate) as LatestEntry
FROM yourTable
GROUP BY OrderID
于 2013-03-20T16:35:28.293 に答える
0

これを試して:

Select OrderID,max(ChangeDate) as LatestDate
from yourTable
group by OrderID
于 2013-03-20T16:30:47.377 に答える
0

複数のアプローチがありますが、max( date)注文ごとの ID だけでなく、レコード全体が必要であると仮定すると、row_number を使用できます。

WITH CTE
(
SELECT 
  OrderID, 
  changeDate, 
  ChangeValue,
  ROW_NUMBER() OVer (Partition BY OrderID order by ChangeDate Desc) rn

FROM order 
)
SELECT * FROM CTE where rn = 1

注: これは、注文ごとに正確に 1 つのレコードを返します。最大変更日が同点の場合、これは問題になる場合とそうでない場合があります

于 2013-03-20T16:32:34.703 に答える