[英]PHP - Group multiple sql results with the same ID and get the amount of each
我正在嘗試使用相同的product_id
對 sql 結果進行分組,並計算每個結果中有多少
在這張照片中,您可以看到我有 4 個具有相同product_id
銷售。
id product_id qty price date user
37 50 1 9.90 2018-09-29 1
31 50 1 9.90 2018-09-29 6
32 50 1 9.90 2018-09-29 6
38 50 1 9.90 2018-09-29 1
當前查詢:
SELECT
s.id,
s.qty,
s.price
FROM
sales s
LEFT JOIN products p ON
s.product_id = p.id
ORDER BY
s.date
DESC
PHP:
<?php foreach ($sales as $sale):?>
<tr>
<td class="text-center"><?php echo count_id();?></td>
<td><?php echo remove_junk(htmlspecialchars_decode($sale['name'])); ?></td>
<td class="text-center"><?php echo (int)$sale['qty']; ?></td>
<td class="text-center"><?php echo remove_junk($sale['price']);?></td>
</tr>
<?php endforeach;?>
基本上像照片中那樣從 a 到 b,而不將它們合並成一行
編輯以提供更好的解釋(再次編輯 product_id 錯誤):
您應該使用 GROUP 語句按產品 ID 對結果進行分組。 使用 group 語句,您可以對數量列的值求和。 如果您選擇只能按產品 ID 分組,那么日期將毫無意義,因為具有該產品 ID 的所有項目將僅按其中之一的日期分組。 由於您在結果集中包含了日期,因此這似乎是您要顯示的內容的重要元素。
以下代碼將按產品 ID 和日期進行分組,這將顯示每個日期購買的每種產品的數量。
SELECT
s.product_id,
SUM(s.qty),
s.price
FROM
sales s
LEFT JOIN products p ON
s.product_id = p.id
GROUP BY s.product_id, s.date
ORDER BY
s.date
DESC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.