別のテーブル (製品) からの最初のレコードと共に、顧客ごとに 1 つのレコードを返そうとしています。テーブルは交差テーブルと結合されており、最小 (日付) を使用している日付はユーザー入力の日付です。
私のSQLは正常に機能しますが、製品テーブルに同じ日付のレコードが複数あることに気付いた顧客が何人かいることに気付いたため、複数回返されています。顧客ごとに 1 つの製品のみを返品できるようにしたいです。データベースはオラクルなので、rownumを使用してみましたが、クエリ全体に対して1つのレコードしか返さないため、明らかに正しく使用していません。これは私のSQLです
SELECT cust.ROW_ID prod.NAME, prod.DATE
FROM cust INNER JOIN ProdCust on cust.ROW_ID = ProdCust.CUST_ID
INNER JOIN prod on ProdCust .PROD_ID = Prod.ROW_ID
INNER JOIN
(SELECT ProdCust.CUST_ID, MIN (Prod.DATE) minDate
FROM ProdCust, Prod
WHERE ProdCust.PROD_ID = Prod.ROW_ID
GROUP BY CUST_ID
) ProdCustMin on ProdCust.CUST_ID = ProdCustMin.CUST_ID AND prod.DATE = ProdCustMin.minDate