Oracle 将表从多行聚合到一行

Oracle 将表从多行聚合到一行,oracle,oracle11g,pivot,Oracle,Oracle11g,Pivot,我有一个数据表,如下所示: Name opening receipt transfer closing abcd 1000 40 30 1010 efg 256 109 219 146 hjk 9356 210 210 9356 mnp

我有一个数据表,如下所示:

Name     opening     receipt     transfer     closing
abcd      1000         40            30          1010
efg       256          109           219         146
hjk       9356         210           210         9356
mnp                                 2000 
我需要的是这样的结果-

opening_abcd   receipt_abcd   transfer_abcd   closing_abcd   opening_efg   receipt_efg .....
 1000            40               30              1010          256            109    .....
到目前为止,我一直在尝试一个接一个地创建多个视图,其中的一行值如下-

select opening opening_abcd, receipt receipt_abcd, transfer transfer_abcd, closing closing_abcd 
  from this_table 
 where name = 'abcd'
对于其他人也是如此,然后我使用JOIN将它们合并在一起


如果我可以在一个查询中选择所有这些值,或者以比我更好的任何其他方式选择它们,是否有一种可能的解决方案?

您是否有一组有限的、已定义的、来自
name
列的值,以供您参考?我也不确定如何“使用join合并它们”。您肯定需要将结果合并在一起?您使用的是具有内置PIVOT运算符的Oracle 11g。请看Tim Hall的优秀网站。@Ben:实际上我有4行,这意味着4个不同的“名称值”。@Ben:我可以在公共列的基础上使用自然连接。对吗?@Colin't Hart&Ben:我使用了“pivot”方法,它对我来说非常好,这意味着当我在sql developer中以查询方式运行它时,它工作得很好,但是当我使用相同的语句创建视图时,它会抛出错误作为“意外令牌!”!在枢轴附近……,那么它为什么会在那里抛出错误。