昨日の質問の続きです。
元の質問を拡張する必要があるかどうかわからなかったので、新しい質問を開始することにしました (我慢してください...)
私SELECT
は現時点では次のようになっています。
SELECT *
FROM
(
SELECT
a.guid_column1, b.guidID_column1, c.date_column1, d.guid_column1
ROW_NUMBER() OVER (PARTITION BY a.guid_column1, b.guid_column1 ORDER BY c.date_column1 DESC) as rn
...
-- JOINS AND WHERE STUFF HERE
....
) t
WHERE t.rn = 1
次のような(予想される)結果が得られます。
a.guid_column1 b.guid_column1 c.date_column1 d.guid_column1
-------------------------------------------------------------------
a1 b1 07/08/2013 someUniqueID
a2 b2 05/06/2012 someUniqueID
トリッキーな部分は、その結果を でソートしたいということです。もちろん、dateadd
このようなものは常に同じとは限りません (実際、後でユーザーが入力します)。ORDER BY dateadd(month, a.float_column, c.date_column1) asc
a.float_column
SQL でこれを達成する方法はありますか (私は SQL Server 2005 を使用しています)