计算按类型

时间:2015-06-21 12:12:36

标签: sql database oracle hierarchy

我有一个表TRANSFERS,其中包含以下列:account_idfather_account_idamounttype

此表格表示从特定帐户进行的所有资金转帐,金额以及按类型(例如食品/学校/税金等)支付的金额。

我需要做的是,每个主要帐户(没有父母的帐户)都要知道从中转移了多少钱(这意味着总结并添加来自其子帐户的转帐),按类型分组。

例如:

account_id | type | amount

   1234    | food  | 500

   1234    | taxes | 750

   1111    | food  | 200

   1111    | school | 600

我环顾四周,无法在任何地方找到解决方案。 任何帮助都会非常受欢迎! 提前谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用运算符connect_by_root并为每个根ID和值求和值:

select root account_id, type, sum(amount) amount
  from (
    select connect_by_root(account_id) root, type, amount
      from transfers
      connect by father_account_id = prior account_id and type = prior type
      start with father_account_id is null )
  group by root, type

SQLFiddle