Sql 具有两个where子句的子查询

Sql 具有两个where子句的子查询,sql,Sql,我有一个表testingname,money,在这里我必须返回一个结果,所有正的钱都被存入存款,负的钱将被取走。下面的查询显示:子查询只允许返回单个列 SELECT name, SUM(money) AS "deposit" FROM testing where money > 0 in (SELECT name, SUM(abs(money)) AS "withdraw" FROM testing where money < 0 ) GROUP BY nam

我有一个表testingname,money,在这里我必须返回一个结果,所有正的钱都被存入存款,负的钱将被取走。下面的查询显示:子查询只允许返回单个列

SELECT name, SUM(money) AS "deposit"
FROM testing
where money > 0 in
    (SELECT name, SUM(abs(money)) AS "withdraw"
    FROM testing
    where money < 0 )
GROUP BY name;

p、 s:我尝试了不使用In,但它也不起作用

您可以使用以下SQL语句

SELECT name, 
       SUM(case when money > 0 then money else 0 end) AS deposit,
       SUM(case when money < 0 then money else 0 end) AS withdraw
FROM testing
GROUP BY name;
SELECT name, SUM(money) AS "deposit"
FROM testing
where money > 0
AND money in
(
    SELECT SUM(abs(money)) AS "withdraw"
    FROM testing
    where money < 0 
)
GROUP BY name;

让我知道它是否有效!:

你用哪一种?SQL只是一种查询语言,而不是特定数据库产品的名称。请为使用postgresql、oracle、sql server、db2的数据库产品添加一个……提取应显示为绝对值,但它可以工作我只是在case之前添加了abs,它可以工作,谢谢