5

建立库存系统。我有很多产品,每个产品都有三个不同的变量。因此,对于库存总额,我想按两列(产品和尺寸)和总数量进行分组以获得库存总额。

产品 尺寸 数量
小部件一 2 275
小部件一 2 100
小部件二 3 150
小部件二 2 150

我想要的输出:

产品 尺寸 数量
小部件一 2 375
小部件二 3 150
小部件二 2 150

我想出了如何按一列分组并使用下面的代码求和:

$query = "SELECT product, SUM(Quantity) FROM inventory GROUP BY product";  
$result = mysql_query($query) or die(mysql_error());
// Print out result
while($row = mysql_fetch_array($result)){
    echo "Total ". $row['product']. " = ". $row['SUM(Quantity)'];
    echo "<br />";
}
?>

我只是坚持按两列分组。是否可以?或者我应该只为三种尺寸中的一种创建三种不同的产品并消除该列?谢谢。

4

1 回答 1

11

根据您的示例表,您似乎想要分组product而不是id. 您只需要将Size列添加到SELECT列表和GROUP BY

$query = "SELECT 
            product,
            Size, 
            SUM(Quantity) AS TotalQuantity 
          FROM inventory
          GROUP BY product, Size";

请注意,我添加了一个列别名TotalQuantity,这将允许您通过更明智的方式更轻松地从获取的行中检索列$row['TotalQuantity'],而不是$row['SUM(Quantity)']

于 2012-06-14T01:42:51.127 回答