我有一个简单的查询,它返回以下行:
当前行:
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
&的空值LiabCode
。实际上我想看到的是将所有内容汇总到前面的行。
在 Oracle 中,我们有这个LAST_VALUE
可以使用的函数,但在这种情况下,我根本不知道如何处理它。
在上面的示例中,ECode
的总和值列是Earn
、DCode
isDedn
和LCode
is Liab
;请注意,只要ECode
、DCode
或中的任何一个不为空,就会在、或列LCode
中存在相应的值。Earn
Dedn
Liab
顺便说一句,我们在工作中使用的是 SQL Server 2008 R2。
希望得到您的建议,谢谢。