mysql - SQL 多行相乘得到一行

标签 mysql sql syntax

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

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

它正在重新调整 4 行中的 1 行,其中显示正确的第一行 itemid、描述和存储,但它将所有两列 localcurrencymount 和汇率乘法添加到一个字段中。所以我的结果应该是,在第 1 行 itemid 7156.4047 中,但我得到的值为 8426.7303;这是所有行(1 到 4)的新列“美国货币金额”的总值。

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

SELECT itemid, description, store FROM item;

它分别返回了 4 行中的所有信息,但是当我添加 SUM(localcurrencyamount * Exchangerate) AS '美国货币金额' 时,数据集中到第一行中。

感谢您的帮助!

最佳答案

评论中的人似乎认为您需要 GROUP BY,但听起来在您的情况下这是不正确的。 SUM() 的意思就是:它对行进行求和(相加)。你不想要这样。你想要:

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

关于mysql - SQL 多行相乘得到一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20896310/

相关文章:

mysql - 如何从文字列表中查询 : select * from ('a' , 'b' , 'c' )

mysql - 需要稍微修改的 SQL 查询

mysql - SQL - 创建连接在一起的多个表的 View

php - 获取 SQL 语法错误

MySQL检查是否有任何行有 future 的日期

mysql - mysql中小数时间的最佳列类型

php - 撇号破坏了我在 PHP 中的 mysql 查询

php - 是否可以运行 PHP exec() 但从进程列表中隐藏参数?

c++ - Range-for 循环识别错误类型 (C2440)

rust - Rust 中星号的用法是什么?