Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 减去同一查询中借方列的贷方?_Mysql_Sql - Fatal编程技术网

Mysql 减去同一查询中借方列的贷方?

Mysql 减去同一查询中借方列的贷方?,mysql,sql,Mysql,Sql,我有以下疑问: 选择用户id,金额(贷方)作为贷方,金额(借方)作为借方 从帐户 其中用户_id='35' 我想从贷方减去借方,并将其显示在一列中,或者显示为变量中的值您可以在同一行中计算差值 SELECT user_id, SUM(credit) AS cred, SUM(debit) AS deb, SUM(credit) - SUM(debit) total FROM account WHERE user_id = 35 更新1

我有以下疑问:

选择用户id,金额(贷方)作为贷方,金额(借方)作为借方 从帐户 其中用户_id='35'


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

您可以在同一行中计算差值

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
选择用户标识,
信贷总额,
金额(借方)为deb,
总额(贷方)-总额(借方)总计
从帐户
其中用户id位于(30,31,32,33,34,35)
按用户ID分组
(总(贷方)-总(借方)少于10

这应该有效,并且可能比另外两个
求和要稍微快一些

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 

如果我有不同的用户id,那么我应该把like user_id='30,31,32,33,34,35'等等……@Akaash,然后你可以使用
中的
分组。请看我的答案。谢谢大家的快速回复。。我现在只需要从用户id池中选择总数小于10的用户id。你说的
用户id池中的总数小于10是什么意思?
?就像我有用户列表一样,但我只想从该列表中选择总数小于10的用户(减去贷记项中的借方为总数)