1

特定の販売注文を複数回更新できる販売レコードのテーブルがあります。最新の3 つの更新を取得し、それらを1 行に表示する必要があります。

私は質問を見てきましたが、それを機能させるために戦っています。

編集:

元のデータの例を次に示します。

order no   DateTime
4774875 1
4774875 2
4774875 3
4944839 3
4944839 2
4944839 1
5245283 1
5245283 2
5245283 3
5268774 3
5268774 2
5268774 1
5268813 1
5268813 2
5268813 3

そして理想的な出力:

Order no    Date1   Date2   Date3
4774875 1   2   3
4944839 1   2   3
5245283 1   2   3
5268774 1   2   3
5268813 1   2   3
4

1 に答える 1

0

これを試して 。これがフィドルです

注:これはあなたのOPによるものであり、そこからあなたがで必要だと思い1 2 3ましたsingle col。が必要な場合がありますPIVOT to get them in 3 separate columns

SELECT T1.oid, REPLACE( (SELECT T2.d AS [data()]
            FROM T T2
            WHERE T2.oid = T1.oid
            ORDER BY T2.d
            FOR XML PATH('')),' ', ' : ') x           
FROM (SELECT oid,d, rank() over(partition by oid order by d desc) rk 
FROM T) T1
WHERE rk <=3
GROUP BY oid

--Results (you can remove : if you don't need it)
4774875 1 : 2 : 3
4944839 1 : 2 : 3
5245283 1 : 2 : 3
5268774 1 : 2 : 3
5268813 1 : 2 : 3
于 2012-12-18T09:59:40.533 に答える