2017-07-08 18 views
0

MySQL:SQL:总结两列为'名称',并在那里使用该名称

我试图在数据库中总结两列并返回结果。我有那个工作。

SELECT Id, SUM(Money + Bank) AS TotalMoney FROM Players_Stats GROUP BY Id 

现在我有两列总计在一起我希望能够在where子句中使用'TotalMoney'?

SELECT Id, SUM(Money + Bank) AS TotalMoney FROM Players_Stats 
WHERE TotalMoney BETWEEN 100000 AND 1000000 
GROUP BY Id 

我收到一个错误,指出TotalMoney不存在但我已经声明了它。

+0

看看这个https://dba.stackexchange.com/questions/46061/mysql-equivalent-of-with-in-oracle(扰流板:将您的查询包装在“代理”中选择) –

回答

0
SELECT Id, SUM(Money) + SUM(Bank) AS TotalMoney FROM Players_Stats 
GROUP BY Id HAVING SUM(Money) + SUM(Bank) BETWEEN 100000 AND 1000000 

OR

SELECT ID,TotalMoney FROM 
(
SELECT Id, SUM(Money) + SUM(Bank) AS TotalMoney FROM Players_Stats 
    GROUP BY Id 
)Z WHERE Z.TotalMoney BETWEEN 100000 AND 1000000 

试试上面的查询。

希望这会帮助你。

+0

嘿谢谢,mysql不喜欢这个组通过 – SAFC

+0

#1064 - 你的SQL语法错误;检查与您的MYSQL服务器版本相对应的手册,以使用正确的语法来使用'SUMER(钱)+ SUM(BANK)'附近100000和1000000'AT LINE 2 – SAFC

+0

@SAFC尝试更新一个 –

0

您想使用HAVING子句。它在GROUP BY之后。它可以使用(在MySQL)表的别名:

SELECT Id, SUM(Money + Bank) AS TotalMoney 
FROM Players_Stats 
GROUP BY Id 
HAVING TotalMoney BETWEEN 100000 AND 1000000;