ここでは、MSSQL 2008 で最善のアプローチを決定しようとしています。
ここに私のサンプルデータがあります
TransDate Id Active
-------------------------
1/18 1pm 5 1
1/18 2pm 5 0
1/18 3pm 5 Null
1/18 4pm 5 1
1/18 5pm 5 0
1/18 6pm 5 Null
Id でグループ化され、TransDate で並べ替えられている場合、アクティブな列の最後の非 Null 値と TransDate の MAX が必要です
SELECT MAX(TransDate) AS TransDate,
Id,
--LASTNonNull(Active) AS Active
結果は次のとおりです。
TransDate Id Active
---------------------
1/18 6pm 5 0
合体に似ていますが、2 つの値/列ではなく行を超えています。
この同様の方法が適用される他の多くの列があるため、列ごとに個別の結合を作成したくありません。
何か案は?