3

我想知道应该返回唯一(按 CUSTOMER_ID、VEHICLE_ID、DEALER_ID 和 EVENT_TYPE_ID)行的 SQL 语句(对于 ORACLE DBMS)应该是什么,但它也会返回该行的最新日期(EVENT_INITIATED_DATE)。我尝试过 DISTINCT 和 GROUP BY,但无法弄清楚如何处理 EVENT_INITIATED_DATE(即 DATE 数据类型)。

CUSTOMER_ID            VEHICLE_ID             DEALER_ID  EVENT_TYPE_ID          EVENT_INITIATED_DATE      
---------------------- ---------------------- ---------- ---------------------- ------------------------- 
22197630               23093399               6040       20                     11-JAN-07                 
22197630               23093399               6040       5                      11-JAN-07                 
22197630               23093399               6040       4                      11-JAN-07                 
22197630               23093399               6040       3                      11-JAN-07                 
22197630               23093399               6040       4                      19-JAN-06                 
4

3 回答 3

6
select CUSTOMER_ID, VEHICLE_ID, DEALER_ID, EVENT_TYPE_ID, 
    max(EVENT_INITIATED_DATE)
from MyTable 
group by CUSTOMER_ID, VEHICLE_ID, DEALER_ID, EVENT_TYPE_ID
于 2010-05-05T19:20:47.657 回答
1

区别将不起作用。

按 - 分组,然后是附加字段的 MAX / MIN 等功能之一。

SELECT Customer_ID, VEHICLE_ID, MAX(EVENT_INITIATED_DATE)... ... GROUP BY Customer_ID, VEHICLE_ID

希望有帮助;)

于 2010-05-05T19:21:17.713 回答
0
select CUSTOMER_ID, VEHICLE_ID, DEALER_ID, EVENT_TYPE_ID,
EVENT_INITIATED_DATE
from MyTable a 
group by CUSTOMER_ID, VEHICLE_ID, DEALER_ID, EVENT_TYPE_ID,
EVENT_INITIATED_DATE HAVING EVENT_INITIATED_DATE = 
  ( select MAX(EVENT_INITIATED_DATE) from MyTable WHERE CUSTOMER_ID =
     a.CUSTOMER_ID AND VEHICLE_ID = a.VEHICLE_ID AND DEALER_ID =
     a.DEALER_ID AND a.EVENT_TYPE_ID = EVENT_TYPE_ID );
于 2015-07-13T11:05:12.023 回答