【问题标题】:how to sum a field from 3 tables and display the results together如何对 3 个表中的字段求和并一起显示结果
【发布时间】:2015-09-02 23:56:09
【问题描述】:

我使用 sql server,我有 3 个表,分别称为 accnt、acc1152 和 acc1167。这些表中的每一个都有一个 amnt 字段和一个 accno 字段,其中包含数千条记录。我需要对 acc1152 和 acc1167 的整个 amnt 列求和,然后将 accno = '1152' 的每条记录的 amnt 列求和,然后对 accno = '1167' 的每条记录的 accnt 列求和。然后将 4 个总和一起显示。

所以最终的结果应该是这样的

    totals
  SUMacc1152
  SUMacc1167
  SUMaccnt A
  SUMaccnt B

我试过这些都没有成功:

SELECT SUM(amnt) FROM acc1167,
SUM(amnt) FROM acc1152,
SUM(amnt) FROM accnt WHERE ACCNO = '1167',
SUM(amnt) FROM accnt WHERE ACCNO = '1152'

SELECT SUM(amnt) FROM acc1167
SELECT SUM(amnt) FROM acc1152
SELECT SUM(amnt) FROM accnt WHERE ACCNO = '1167'
SELECT SUM(amnt) FROM accnt WHERE ACCNO = '1152'

【问题讨论】:

  • 好吧,在第二个查询中在selects 之间输出union all
  • 谢谢,就是缺少的东西

标签: sql-server select sum


【解决方案1】:
SELECT 'acc1167' as tbl_name,SUM(amnt) FROM acc1167
union
SELECT 'acc1152' as tbl_name,SUM(amnt) FROM acc1152
union
SELECT '1167' as tbl_name,SUM(amnt) FROM accnt WHERE ACCNO = '1167'
union
SELECT '1152' as tbl_name,SUM(amnt) FROM accnt WHERE ACCNO = '1152'

【讨论】:

    【解决方案2】:

    成功了

    SELECT SUM(amnt) FROM acc1167
    union all
    select SUM(amnt) FROM acc1152
    union all
    select SUM(amnt) FROM accnt WHERE ACCNO = '1167'
    union all
    SELECT SUM(amnt) FROM accnt WHERE ACCNO = '1152'
    

    【讨论】:

      猜你喜欢
      • 2023-04-08
      • 2012-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-13
      • 1970-01-01
      • 2021-10-03
      相关资源
      最近更新 更多