【问题标题】:Need Sql Queries for the scenario场景需要 Sql 查询
【发布时间】:2010-07-04 16:43:46
【问题描述】:
Trans Id 日期 描述 贷方 借方 1 12/05/2009 存款金额 1000 1000 2 2009 年 5 月 15 日 提取金额 -500 500 3 20/05/2009 已存入 2000 2500 4 25/05/2009 提取金额 -1000 1500 1500

Trans ID 是主键

我需要如下输出

Trans Id 日期 描述 金额 1 12/05/2009 存入金额 1000 2 2009 年 5 月 15 日 提取金额 500 3 2009 年 5 月 20 日 2000 年存款 4 25/05/2009 提取金额 1000 余额 1500

需要Sql查询生成输出

【问题讨论】:

  • 到目前为止你做了什么?你有什么SQL? stackoverflow 社区不会为你做你的工作,特别是如果你不首先展示你的努力。
  • 你能解释你想做什么吗?您只显示原始数据和输出....您想对原始数据做什么以获得该输出?通过...分组?过滤?种类 ?请解释!!否则我们只能猜测......
  • 你在第一个数据集中的最后一列应该是“余额”,不是吗?

标签: sql-server


【解决方案1】:

我认为这是你想要的:

SELECT TransId, Date, Description, ABS(Credit) AS Amount
FROM transactions
UNION ALL
SELECT NULL, NULL, 'balance', SUM(Credit)
FROM transactions;

结果:

TransId 日期 描述 金额 1 2009-05-12 存入金额 1000 2 2009-05-15 提取金额 500 3 2009-05-20 存入 2000 4 2009-05-25 提取金额 1000 NULL NULL 余额 1500

【讨论】:

    【解决方案2】:

    您可以使用 case 语句来查找最大值,并使用 abs 来确保为正数:

    select  [trans id]
    ,       date
    ,       description
    ,       abs(case when credit > debit then credit else debit end) as Amount
    from    YourTable
    

    重新阅读您的问题,我怀疑这是您正在寻找的答案。请详细解释一下。

    【讨论】:

      猜你喜欢
      • 2017-08-19
      • 2020-09-23
      • 1970-01-01
      • 1970-01-01
      • 2014-10-23
      • 1970-01-01
      • 1970-01-01
      • 2019-07-19
      • 1970-01-01
      相关资源
      最近更新 更多