私は次のようなテーブル Sales を持っています:
CLIENT, PRODUCT, SALEDATE
Peter, Phone, 2013/02/01
Peter, Phone, 2012/11/15
Peter, Phone, 2010/01/01
私は LastSale という名前のこのビューを持っています:
SELECT Client, Product, MAX(SaleDate)
FROM Sales
GROUP BY Client, Product
このビューを実行すると、結果は次のようになります。
Peter, Phone, 2013/02/01
今私の問題は、たとえば、SaleDate でフィルタリングするプログラムでこのビューを使用していることです。
SELECT *
FROM LastSale
WHERE SaleDate < '2013/01/01'
MAX(SaleDate) が < '2013/01/01' ではないため、この SQL では結果が得られませんが、要求に適合する日付 (2012/11/15) があります。
ビューの HAVING 句を使用してこれを実行できることはわかっていますが、私のプログラムではビューにアクセスしているため、変更できません。私が望む結果を得る方法はありますか?
事前に感謝し、私の下手な英語を許してください。