选择所有类别和所有子类别(在每个类别中)

时间:2014-06-03 13:03:56

标签: sql sql-server select

我有两张桌子:

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...  

时间最长?我不知道

1 个答案:

答案 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