2012-07-24 118 views
0

后,我已经制定了一个问题,我有以下几点:mysql命令通过SUM

SELECT Event_id, SUM(Money) AS 'Total Money' 
FROM prize 
GROUP BY Event_id 
ORDER BY 'Total Money' DESC; 

但是它不总汇票。如果我省略了''标记并呼叫Total_Money列,它工作正常:

SELECT Event_id, SUM(Money) AS Total_Money 
FROM prize 
GROUP BY Event_id 
ORDER BY Total_Money DESC 

这是为什么? 有没有办法调用栏目总金额和排序我想要的?

+0

您使用报价',不要使用报价。使用'字符 – 2012-07-24 10:13:27

回答

0

单引号定义一个字符串值,因此您的订单由你不是说order by this column你正在说order by the string 'Total Money'哪个当然不起作用。

如果你真的想使用的空间,当你写SELECT Event_id, SUM(Money) AS Total Money你给了一个别名奖金总数总结(钱),你可以使用反引号,而不是单引号像

ORDER BY `Total Money` 
+0

谢谢klennepette,不知何故在我的学习中错过了。 – 2012-07-24 10:21:35

0
SELECT Event_id, SUM(Money) AS `Total Money` 
FROM prize 
GROUP BY Event_id 
ORDER BY `Total Money` DESC; 

“总金钱”订购基本上说ORDER BY一些字符串到MySQL。当您将任何内容放入引号中时,您将创建一个字符串。当创建别名,处理,是经过一些保留字(如user例如)指定的列名 - 使用反引号:

`user` 
1


如果您将总金额写在引号中,那么您将其作为错误的字符串。