开发者社区> 问答> 正文

子帐户SQL

我有两个表 表1

Account     mainaccount
-------      --- 
A            Null
B            A
C            A
D            B

第二表

Account     cost
--------     --
C            10
D            20

需要这个结果

Account
A   30
B   20
C   10
D   20

展开
收起
心有灵_夕 2019-12-25 21:59:12 695 0
1 条回答
写回答
取消 提交回答
  • 您正在寻找递归CTE和聚合:

    with cte as (
          select t.account, t.account as paired_account
          from table1 t
          union all
          select cte.account, t.mainaccount
          from cte join
               table1 t
               on cte.paired_account = t.account
         )
    select cte.account, sum(t2.cost)
    from cte join
         table2 t2
         on t2.account = cte.paired_account
    group by cte.account;
    
    2019-12-25 21:59:27
    赞同 展开评论 打赏
问答分类:
SQL
问答地址:
问答排行榜
最热
最新

相关电子书

更多
SQL Sever迁移PG经验 立即下载
PolarDB NL2SQL: 帮助您写出准确、优化的SQL 立即下载
SQL Server 2017 立即下载