我需要按供应商ID分组,计算尚未出售或失败的数量,还要计算该供应商的已售金额。
|---vendor id---|---failed---|---sold---|
| 1234 | FAILED | |
| 9876 | FAILED | |
| 1234 | GRADE A | sold |
| 1234 | GRADE A | sold |
| 9876 | GRADE A | sold |
我尝试了无数查询,这些查询是我在堆栈上发现的,而我只是没有运气。
$sql = 'SELECT *,sold,COUNT(sold),COUNT(*) FROM wp_drives WHERE sold != "sold" AND grade != "Grade FAIL" GROUP BY vendor_id';
while($row = mysqli_fetch_assoc($result)) {
echo "<tr>";
echo "<td style='text-align: center;'>" .$row['vendor_id']. "</td>";
echo "<td style='text-align: center;'><span class='qty'>".$row['COUNT(*)']."</span></td>";
echo "<td style='text-align: center;'>" .$row['capacity']. "</td>";
echo "<td style='text-align: center;'>" .$row['form_factor']. "</td>";
echo "<td style='text-align: center;'>" .$row['rpm']. "</td>";
echo "<td style='text-align: center;'><span class='sold'>".$row['COUNT(sold)']."</span></td>";
echo "</tr>";
}
在我的表中,我将供应商分组,该组中有所有硬盘的数量,然后一些被出售,并且需要显示该组中已经出售了多少个。现在,它返回的卖出价格与数量相同。
答案 0 :(得分:0)
在对数据进行分组时不能使用*,所分组的列应成为选择条件的一部分。试试这个
选择vendor_id,COUNT(*)作为wp_drives在哪里出售的计数!='sold' AND等级!='失败等级'GROUP BY vendor_id