我正在尝试为每个客户返回 1 条记录,以及来自另一个表(产品)的第一条记录。这些表与一个交集表连接在一起,我使用最小(日期)的日期是用户输入的日期。
我的 sql 可以正常工作,除了我注意到有一些客户在产品表中具有多个相同日期的记录,因此它们被多次返回。我希望每个客户只能退回 1 件产品。数据库是 oracle,所以我尝试使用 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