Oracle将两行合并为一行

时间:2013-05-14 14:50:46

标签: sql oracle row union

我有这样的结果:

15.04.13    5   Doe, John   2431    null    null 46 560 0   null    0
15.04.13    5   Doe, John   2431    paid    525  0  0   585 null    60

这是两个查询结合的结果。

我需要的是每天一行和一个人。

我正在寻找的是将这两行组合成类似

的方法
15.04.13    5   Doe, John   2431    paid    525  46 560 585 null    60

好的,我可以说得到一个像这样的结果:

15.04.13    5   Doe, John   2431    null        null 46 560 null null    0
15.04.13    5   Doe, John   2431    not paid    323  0  0   452  null    55
15.04.13    5   Doe, John   2431    paid        525  0  0   585  null    60

我需要第二行和第三行,并将第一行中的46和560与下面的所有行匹配。

在这种情况下,max()组不起作用。 我怎么解决这个问题?

1 个答案:

答案 0 :(得分:3)

这听起来像是GROUP BY

的工作
select some_date
,      some_id
,      some_name
,      some_number
,      max(paid) paid
,      max(amount) amount
,      max(etc) etc
from   some_table
group by some_date
,      some_id
,      some_name
,      some_number