建立库存系统。我有很多产品,每个产品都有三个不同的变量。因此,对于库存总数,我希望按两列(产品和尺寸)和总和数量进行分组,以获得库存总量。
---------------------------------
|product |Size |Quantity |
---------------------------------
|Widget one |2 |275 |
---------------------------------
|Widget one |2 |100 |
---------------------------------
|Widget two |3 |150 |
---------------------------------
|Widget two |2 |150 |
---------------------------------
我想要的输出:
小工具1 - 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 />";
}
?>
我只是坚持按两列分组。可能吗?或者我应该为三种尺寸创建三种不同的产品并消除该列?感谢。
答案 0 :(得分:10)
根据您的示例表,您似乎希望在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)']
更容易地从提取的行中检索列p>