次の行を返す簡単なクエリがあります。
現在の行:
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でない場合は常に、、、または列に対応する値があることに注意してください。DCode
Dedn
LCode
Liab
ECode
DCode
LCode
Earn
Dedn
Liab
ちなみに、SQL Server2008R2を使用しています。
あなたのアドバイスを期待して、ありがとう。