スーパーマーケットでベストセラーを 3 つ選びたいとします。これを行うには、各販売を追加して、各製品の合計を取得する必要があります。
SELECT TOP(3) *
FROM
(
SELECT
SUM(s.individual_sale) AS totalsales,
p.productID AS ID,
p.productName AS Name
FROM
sales s,
products p
WHERE
1=1
AND p.productID = s.productID
GROUP BY
p.productID,
p.productName
) AS top_sellers
ORDER BY
top_sellers.totalsales DESC
次に、次のようなものが返されます。
ID..|.名前.|.totalsales
55.|.ミルク....|.1000
24.|.キャンディー.|.800
67.|.ジュース...|.500
ここで、「MAX saledate」を各アイテムにクエリするように、これらの各アイテムの最後の販売を含む 4 番目の列を取得したいと考えています。どうすればそれを達成できますか?
編集: MAX(s.saledate) を追加しても役に立ちません。2012 年 1 月 1 日のような日付をすべての行に取得しますが、上記のテーブルのエントリごとに個別に MAX(s.saledate) をクエリすると、正しい日付が返されます...私の質問は、列 MAX を追加するにはどうすればよいですか? 3 つのベストセラーを表示する同じクエリを使用して、各製品の (s.saledate)。