我有點(diǎn)困惑,找不到合適的解決方案。我想根據(jù)品牌 ID 總結(jié)價(jià)值我有一個(gè)具有品牌 ID 的產(chǎn)品表,如下所示-----------------------------------| id | quantity | low | brand_id | |----|----------|-----|----------|| 1 | 100 | 100 | 1 | | 2 | 40 | 50 | 3 | | 3 | 10 | 5 | 2 | | 4 | 15 | 10 | 1 | | 5 | 6 | 10 | 2 | | 6 | 3 | 10 | 3 || 7 | 20 | 30 | 1 ||----|----------|-----|---------|我正在選擇所有具有價(jià)值的產(chǎn)品$sql = "SELECT * FROM " . DB_PREFIX . "product WHERE brand = '" . (int)$brand_id . "'";然后,如果“數(shù)量”小于“低”,則運(yùn)行該函數(shù)以獲取“需要”庫存,如下所示foreach ($query->rows as $product) { if ($product['quantity'] < $product['low']) { $provalue = $product['low'] - $product['quantity']; } else { $provalue = 0; }}到目前為止一切順利,返回結(jié)果顯示:----------------------------| brand_id | need ||--------------|-----------|| 1 | 0 || 3 | 10 || 2 | 0 || 1 | 0 || 2 | 4 || 3 | 7 || 1 | 10 ||--------------|-----------|但是,我試圖將基于“brand_id”的“需要”的結(jié)果總結(jié)如下:----------------------------| brand_id | need ||--------------|-----------|| 1 | 10 || 2 | 4 || 3 | 17 ||--------------|-----------|請(qǐng)問有什么建議嗎?先謝謝了!
2 回答

隔江千里
TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個(gè)贊
您可以直接在查詢中執(zhí)行此操作:
$sql = "SELECT brand_id, SUM(GREATEST(0, low - quantity)) AS need FROM " . DB_PREFIX . "product GROUP BY brand_id";
GREATEST
當(dāng)有足夠quantity
的滿足時(shí),我們用來確保我們求和的值不是負(fù)數(shù)low
(即它相當(dāng)于if
您代碼中的語句)。

梵蒂岡之花
TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個(gè)贊
將您的 sql 查詢更改為以下以計(jì)算查詢本身的需求
$sql = "SELECT brand_id,SUM(low) - SUM(quantity) As Need FROM " . DB_PREFIX . "product WHERE quantity < low GROUP BY brand_id";
- 2 回答
- 0 關(guān)注
- 178 瀏覽
添加回答
舉報(bào)
0/150
提交
取消