我试图按顺序列出我的供应商,并在我的供应商下方显示需要订购的物品。但是最初提供给我的脚本每次都会列出供应商。
这就是我所拥有的:
$dataSQL = "SELECT * FROM inventory WHERE product_active='Y' ORDER BY product_supplier, product_category, product_code ASC";
$data = mysql_query($dataSQL) or die(mysql_error());
$rows = mysql_num_rows($data);
while($result = mysql_fetch_array( $data )) {
$category=$result['product_category'];
$id=$result['id'];
$item1=$result['product_name'];
$code1=$result['product_code'];
$code2=$result['product_suppliercode'];
$soh=$result['product_soh'];
$reorder=$result['product_reorder'];
$supplier=$result['product_supplier'];
$order=$result['product_reorder']-$result['product_soh'];
// output row from database
if($soh<$reorder) {
echo "
<tr><td>$supplier</td><td>SOH $soh | Order $order</td></tr>
<tr><td>$item1</td><td>$code1</td></tr>
";
}
}
但是,如果来自1个供应商的产品缺货不止一种,我只想列出一次供应商,而不是每次都列出。
这是当前结果: 低/缺货报告 商业用品SOH 3 |订单1 白色保暖旅行杯0000000001030 SOH办公室工作14 |订单1 Frixion邮票咖啡杯(橙色)4902505508073 办公室工作SOH 0 |订单1 Frixion邮票苹果4902505508103 PHE(纸张处理设备)SOH |订单1 20mm 100pk塑料装订梳 (框) 0000000004115
(对不起,不确定如何在此处以表格格式显示)。最终结果将是一次显示供应商名称,然后在下一行显示项目,代码,SOH和重新订购
答案 0 :(得分:0)
您可以选择DISTINCT
product_supplier
。
因此您的查询将变为:
SELECT DISTINCT ON product_supplier *
FROM inventory
WHERE product_active='Y'
ORDER BY product_supplier, product_category, product_code ASC
或者,您可以在要消除重复项的列上使用GROUP BY
:
SELECT *
FROM inventory
WHERE product_active='Y'
GROYP BY product_supplier
ORDER BY product_supplier, product_category, product_code ASC