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

Distinc は機能しません。

- でグループ化してから、追加フィールドの MAX / MIN などの関数の 1 つ。

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 に答える