【问题标题】:Minus credit from debit column in same query?在同一查询中从借方列减去贷方?
【发布时间】:2013-03-01 16:27:29
【问题描述】:

我有以下查询:

SELECT user_id, SUM( credit ) AS cred, SUM( debit ) AS deb 来自帐户 WHERE user_id = '35'

我想从贷方中减去借方并将其显示在一列中或作为变量中的值显示

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    这应该可以工作,并且可能比其他两个SUMs 稍快

    SELECT a.user_id, 
           a.cred, 
           a.deb, 
           a.deb - a.cred AS value 
    FROM   (SELECT user_id, 
                   Sum(credit) AS cred, 
                   Sum(debit)  AS deb 
            FROM   account 
            WHERE  user_id = '35') a 
    

    如果您有多个用户,您可以执行以下操作:

    SELECT a.user_id, 
           a.cred, 
           a.deb, 
           a.deb - a.cred AS value 
    FROM   (SELECT user_id, 
                   Sum(credit) AS cred, 
                   Sum(debit)  AS deb 
            FROM   account 
            WHERE  user_id IN (35, 36, 39)
            GROUP BY user_id) a 
    

    See the demo

    【讨论】:

      【解决方案2】:

      你可以在同一行计算差异

      SELECT  user_id, 
              SUM(credit) AS cred, 
              SUM(debit) AS deb,
              SUM(credit) -  SUM(debit) total
      FROM account 
      WHERE user_id = 35
      

      更新 1

      SELECT  user_id, 
              SUM(credit) AS cred, 
              SUM(debit) AS deb,
              SUM(credit) -  SUM(debit) total
      FROM account 
      WHERE user_id IN (30,31,32,33,34,35)
      GROUP BY user_ID
      

      更新 2

      SELECT  user_id, 
              SUM(credit) AS cred, 
              SUM(debit) AS deb,
              SUM(credit) -  SUM(debit) total
      FROM account 
      WHERE user_id IN (30,31,32,33,34,35)
      GROUP BY user_ID
      HAVING (SUM(credit) -  SUM(debit)) < 10
      

      【讨论】:

      • 如果我有不同的用户ID怎么办,那么我应该像user_id = '30,31,32,33,34,35'等......
      • @Akaash 然后你可以使用INGROUP BY。看我的回答。
      • 感谢大家的快速回复。我现在只需要从用户 id 池中选择总数小于 10 的用户 id
      • total is less than 10 from the pool of users id 是什么意思?
      • 就像我有用户列表,但我只想要该列表中那些总数少于 10 的用户,(减去从贷方中扣除的总金额)
      猜你喜欢
      • 1970-01-01
      • 2012-12-13
      • 1970-01-01
      • 1970-01-01
      • 2019-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多