Sql 如何在查询中指定整个上一个工作周的日期,而不考虑当前日期?
如何让我的查询从上一周的数据中提取数据 (星期日至星期六)无论数据是在哪一天提取的Sql 如何在查询中指定整个上一个工作周的日期,而不考虑当前日期?,sql,db2,Sql,Db2,如何让我的查询从上一周的数据中提取数据 (星期日至星期六)无论数据是在哪一天提取的 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 W
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
您可以使用函数计算要检索的日期 星期五国际标准化组织 周一返回1,周日返回7 所以会是这样的
current date - 7 days - dayofweek_iso(current date) days
这将从当前日期减去一周,再减去当前周的n天