【问题标题】:Oracle combine two rows into oneOracle 将两行合二为一
【发布时间】:2013-05-15 17:22:15
【问题描述】:

我有这样的结果:

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() 组将不起作用。 我该如何解决这个问题?

【问题讨论】:

  • 您需要为这个问题添加更多细节。列标题将是一个好的开始。另外,合并数据的业务规则是什么?例如,560 和 0 的列结果为 560,这是 SUM 还是 MAX?在不了解所需的业务规则的情况下,这里的任何人都很难为您提供帮助。

标签: sql oracle row union


【解决方案1】:

这听起来像是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

【讨论】:

  • 是的,我想基本上就是这样。我已经试过了,但忘记了一些专栏。所以结果不是我要找的那个。
猜你喜欢
  • 2020-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-13
相关资源
最近更新 更多