上位 3 人の顧客を照会しようとしています。私は3つのテーブルを持っています:
- 顧客テーブル (CustomerID、Company)
- 商品テーブル (ProductID、ProductName、Price)
- 注文テーブル (OrderID、Date、Amount、CustomerID)
OrderID 日付 金額 CustomerID 19 2012-08-24 20 10043 20 2012-08-24 40 10044 21 2012-08-24 60 10044 22 2012-08-24 80 10042 23 2012-08-24 90 10043 24 2012-08-24 100 10042 25 2012-08-24 50 10041
この表が表示された場合:
- 10042 は $180 相当の製品を注文しました
- 10043 は $110 相当の製品を注文しました
- 10044 は $100 相当の商品を注文しました
この情報を次のように照会するにはどうすればよいですか。
上位 3 名の顧客
CustomerID 会社 注文した製品のコスト 10042 HP $180 10043 エイサー $110 10044 ソニー $100
現在、このmysqlを持っていますが、希望どおりに表示されません。誰かが私の間違いを指摘するのを助けることができますか?
$query = "SELECT
CustomerOrder.CustomerID, CustomerOrder.Amount,
Customer.Company,
count(CustomerOrder.Amount) as total_amount
FROM
`CustomerOrder`
INNER JOIN Customer ON Customer.CustomerID = CustomerOrder.CustomerID
GROUP BY CustomerID
ORDER BY total_amount DESC LIMIT 3";
現在、私はこれを取得しています:
Top 3 Customers
CustomerID Company Cost of Product Ordered
10042 HP 80.00
10043 Acer 20.00
10044 Sony 40.00
このコードを使用して表示しています:
$result = mysql_query($query);
$num=mysql_numrows($result);
echo "<table border='1'>
<tr>
<th>CustomerID</th>
<th>Company</th>
<th>Cost of Product Ordered</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['CustomerID'] . "</td>";
echo "<td>" . $row['Company'] . "</td>";
echo "<td>" . $row['total_amount'] . "</td>";
echo "</tr>";
}
echo "</table>";