2016-10-07 7 views
-1

データが取得されている日に関係なく、最後のフルウィーク (土曜日から日曜日)に基づいてクエリをプルする方法を教えてください。クエリで指定する方法は、現在の日/日付に関係なく、前の勤務時間全体の日付を指定しますか?

SELECT 
TLORDER.BILL_TO_CODE, 
TLORDER.BILL_NUMBER, 
DATE(LEG_DATE) LEG_DATE, 
DRIVER_ID, 
(SELECT DRIVER_TYPE FROM DRIVER WHERE DRIVER.DRIVER_ID = DRIVERPAY.DRIVER_ID), 
(SELECT TERMINAL_NUMBER FROM DRIVER WHERE DRIVER.DRIVER_ID = DRIVERPAY.DRIVER_ID) TERMINAL_NUMBER, 
(SELECT TERMINAL_ZONE FROM DRIVER WHERE DRIVER.DRIVER_ID = DRIVERPAY.DRIVER_ID) TERMINAL_ZONE, 
SUM(TOTAL_PAY_AMT) TOTAL_PAY, 
COALESCE((SELECT SUM(LS_LEG_DIST) FROM LEGSUM WHERE LS_TRIP_NUMBER = DRIVERPAY.TRIP_NUMBER),TLORDER.DISTANCE) MILES , 
TLORDER.DISTANCE, 
ORIGIN, 
TLORDER.START_ZONE_DESC, 
DESTINATION, 
TLORDER.END_ZONE_DESC 

    FROM DRIVERPAY 
     INNER JOIN TLORDER 
      ON TLORDER.DETAIL_LINE_ID = DRIVERPAY.DETAIL_LINE_ID 

WHERE 
    DATE(LEG_DATE) >= CURRENT DATE - 14 DAYS 
    AND PMT_STATE IN ('C','X','A') 

GROUP BY TLORDER.BILL_TO_CODE, TLORDER.BILL_NUMBER, DRIVER_ID, DISTANCE, ORIGIN, TLORDER.START_ZONE_DESC, DESTINATION, TLORDER.END_ZONE_DESC, DRIVERPAY.TRIP_NUMBER, LEG_DATE 
ORDER BY TERMINAL_NUMBER 

答えて

3

あなたはそれが日曜日のための7までの月曜日には1を返します

DAYOFWEEK_ISO機能

を取得するには日付を計算することができます。

だから、これは現在の日付と現在の週のに加えて、N日から1週間substractます

current date - 7 days - dayofweek_iso(current date) days 

のようなものになります。

関連する問題