Mysql查询SUM动态量

时间:2013-05-21 15:22:14

标签: php mysql sql sum

我需要帮助将一个mysql查询写入一个列中的SUM金额,其中另一个列的值可能会有所不同,具体取决于它包含的值。这是我的表的一个例子。

account     type         amount
-------     ----         ------
Dell        Inventory    500.00
Microsoft   Inventory    100.00
Cisco       Inventory    300.00
Dell        Inventory    400.00
Webhosting  Service       15.00

到目前为止,这是我所拥有的,它并不多,但我想不出一个好方法。

$result = mysql_query("SELECT * FROM table WHERE type = 'Inventory'");
while($row = mysql_fetch_array($result)){
  Sum the amounts for each account type.  The account types are not fixed, will change regularly
}

正如我上面的说明所示,帐户字段不会被修复,因此我无法使用帐户名称对查询进行硬编码。

然后我想要一份详细说明每个帐户总数的报告。

Dell $900
Microsoft $100
Cisco $300

感谢您的帮助!

3 个答案:

答案 0 :(得分:4)

您需要使用汇总函数SUM()来获取每个帐户的总金额。

SELECT  account, SUM(amount) totalAmount
FROM    tableName
WHERE   type = 'inventory'
GROUP   BY account

答案 1 :(得分:1)

我认为您可以使用GROUP BYaccount对记录进行分组,因此您可以使用SUM()函数汇总所有金额

SELECT account, SUM(amount) as total
FROM  table
WHERE type = 'inventory'
GROUP BY account

答案 2 :(得分:1)

SELECT `account`,sum(`amount`) FROM `table_name` WHERE `type`='Inventory' group by `account`