特定の時点で発生する一連のトランザクションがあります。
CREATE TABLE Transactions (
TransactionDate Date NOT NULL,
TransactionValue Integer NOT NULL
)
データは次のようになります。
INSERT INTO Transactions (TransactionDate, TransactionValue)
VALUES ('1/1/2009', 1)
INSERT INTO Transactions (TransactionDate, TransactionValue)
VALUES ('3/1/2009', 2)
INSERT INTO Transactions (TransactionDate, TransactionValue)
VALUES ('6/1/2009', 3)
TransactionValue が何らかのレベルを設定すると仮定すると、トランザクション間のレベルを知る必要があります。これは一連の T-SQL クエリのコンテキストで必要なので、次のような結果セットを取得できれば最適です。
Month Value
1/2009 1
2/2009 1
3/2009 2
4/2009 2
5/2009 2
6/2009 3
月ごとに、トランザクションで指定された値を取得する方法、または最新の null 以外の値を取得する方法に注意してください。
私の問題は、これを行う方法がほとんどわからないことです! 私は「中級」レベルの SQL 開発者にすぎませんが、これまでにこのようなものを見た覚えはありません。当然、必要なデータをプログラムで作成したり、カーソルを使用して作成したりできますが、これを行うためのより良いセット指向の方法があるかどうかを知りたいです。
私は SQL Server 2008 を使用しているので、役立つ新機能があれば教えてください。
PS誰かがこの質問を述べるより良い方法、またはより良い件名を考えることができれば、私はそれを大いに感謝します. 「スプレッド」は不自由ですが、私が思いつくことができる最高のものであると判断するのにかなりの時間がかかりました. 「スミア」はもっとひどい音でした。