我有两张桌子:
1)REPORT(ID,CLIENT_ID,STOP_TIME)
2)REPORT_DETAILS(ID,REPORT_ID,CLIENT_ID,PRODUCT_ID)
我需要选择STOP_TIME最大的所有对(CUSTOMER_ID,PRODUCT_ID)。 但!一个客户可以有几个报告包含相同的产品,这就是重点......
我的想法(我不会让你做我的作业......我只需要建议,一些方向去看看):
WITH temp_table (client_id, product_id, report_id, stop_time) AS(
SELECT distinct(rd.CLIENT_ID), rd.REPORT_ID, rd.PRODUCT_ID, r.STOP_TIME
FROM REPORT_DETAILS rd
JOIN REPORT r
ON (r.ID = rd.REPORT_ID)
)
SELECT client_id, product_id,stop_time...
时间最长?我不知道
答案 0 :(得分:0)
;WITH temp_table
(client_id, product_id, report_id, stop_time)
AS
(
SELECT distinct(rd.CLIENT_ID), rd.REPORT_ID, rd.PRODUCT_ID, MaXTime
FROM REPORT_DETAILS rd
INNER JOIN (SELECT ReportId,MAX(STOP_TIME)As MaXTime
FROM REPORT
GROUP BY ReportId) r
ON r.ID = rd.REPORT_ID
)
SELECT client_id, product_id,stop_time FROM temp_table