SQL乘法多行导致一行

时间:2014-01-03 03:59:55

标签: mysql sql syntax

我正在使用以下语法进行查询:

SELECT itemid, description, store, SUM(localcurrencyamount * exchangerate) AS 'US Currency Amount'
FROM item;

它正在重新调整4行中的1行,它显示正确的第一行itemid,description和store,但它将所有两列都添加到localcurrencyamount并将乘法交换到一个字段中。所以我的结果应该是在行itemid 1,7156.4047中,但我的值为8426.7303;这是所有行(1到4)的新列美国货币金额的总值。

这种语法有什么问题导致所有数据被“集中”到一个字段而不是4个字段?我跑的时候:

SELECT itemid, description, store FROM item;

它分别从4行返回了所有信息,但是当我添加SUM(localcurrencyamount * exchangerate)时,AS'美国货币金额'就是将数据汇总到第一行时。

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

评论中的人似乎认为你需要GROUP BY,但听起来你的情况并不正确。 SUM()意味着:它总结(累加)行。你不希望这样。你想要:

SELECT itemid, description, store, (localcurrencyamount * exchangerate) AS 'US Currency Amount'
FROM item;

答案 1 :(得分:0)

如果您想分别获取每条记录的结果,请不要使用SUMSUM是一个对一组记录起作用的聚合函数。只使用:

SELECT itemid, description, store, (localcurrencyamount * exchangerate) AS 'US Currency Amount'
FROM item;