次の行を返す簡単なクエリがあります。
現在の行:
Empl ECode DCode LCode Earn Dedn Liab
==== ==== ===== ===== ==== ==== ====
123 PerHr Null Null 13 0 0
123 Null Union Null 0 10 0
123 Null Per Null 0 20 0
123 Null Null MyHealth 0 0 5
123 Null Null 401 0 0 10
123 Null Null Train 0 0 15
123 Null Null CAFTA 0 0 20
ただし、上記の行を次のように表示する必要がありました。
Empl ECode DCode LCode Earn Dedn Liab
==== ==== ===== ===== ==== ==== ====
123 PerHr Union MyHealth 13 10 5
123 Null Per 401 0 20 10
123 Null Null Train 0 0 15
123 Null Null CAFTA 0 0 20
EarnCodeこれは、、、DednCodeおよびのNullが検出された場合は常に、後続の行を先行する行にマージするようなものLiabCodeです。実際に私が見たかったのは、すべてを前の行にロールアップすることでした。
OracleにはこのLAST_VALUE関数を使用できましたが、この場合、これをどうすればよいかわかりません。
上記の例では、ECodeの合計値の列はEarn、、、、およびです。、、、またはのいずれかがnullでない場合は常に、、、または列に対応する値があることに注意してください。DCodeDednLCodeLiabECodeDCodeLCodeEarnDednLiab
ちなみに、SQL Server2008R2を使用しています。
あなたのアドバイスを期待して、ありがとう。