まず、MySQL 4.0.27を使用しており、この バージョンのソリューションが必要です。MySQL 4.0.xの他のフィールドにMAXを持つフィールドの対応する値を取得する方法
他のフィールドのSELECT文でMAX()を使用しており、MAXフィールドの値に対応する他のフィールドの値を取得する必要があります。
は、テーブルからデータを下回る受注を想定します。
-------------------------------------------------------------- Product | CategoryID | Date | OrderBy -------------------------------------------------------------- TV | 1 | 2011-11-27 | John Pen | 1 | 2011-11-29 | David Mouse | 2 | 2011-11-30 | Mike Printer | 1 | 2011-10-19 | Rozi HDD | 2 | 2011-11-02 | Peter ----------------------------------------------------------------
私の要件は、私は次の結果必要があることを意味しており、最近の注文で個人の名前で各カテゴリに注文の数を取得することです:
-------------------------------------------------------------------------- CategoryID | OrderBy | Order_Count | Date ------------------------------------------------------------------------- 1 | John | 3 | 2011-11-29 2 | Peter | 2 | 2011-11-30を
私はSQLの下に使用している場合:
SELECT CategoryID, OrderBy, COUNT(OrderID) AS Order_count, MAX(Date)
FROM Orders
GROUP BY CategoryID
希望の結果が得られません。私は、抽出された日付に反している同じ名前の代わりに、OrderByに他の名前をつけています。
誰かが、内部クエリやGROUP_CONCATなどの関数を使用しないという制限があるMySQL 4.0.xでこれを実現する方法を提案できますか?
ありがとうございます。
念のため、カテゴリー1のために、名前はデビッドではないでしょう?カテゴリ2の場合は、マイクではないでしょうか?彼らは最新の日付のものです! –
ところで、ジョンは最近でも最古でもありません...とにかくジョンはどうしてそんなに期待していますか? –
私の謝罪;あなたは正しいです、結果はCat 1のためのDavidとCat 2のMileを持っているはずです。しかし、私はこれを取得していません。 –