17,377
社区成员
发帖
与我相关
我的任务
分享
SELECT SUBSTR(CRTDATE, 1, 10), NOTPERFECT_USER, AVG(EVERYDAY) EVERYDAY
FROM (SELECT AP.CRTDATE,
CASE
WHEN AP.NOTPERFECT_USER IS NOT NULL THEN
AP.NOTPERFECT_USER
ELSE
AP.OVERBOOKINGUSER
END NOTPERFECT_USER,
CASE
WHEN NOTPERFECT_TIME IS NOT NULL THEN
(SELECT (TO_DATE(AP.NOTPERFECT_TIME, 'yyyy-mm-dd hh24:mi:ss') -
TO_DATE(AP.CRTDATE, 'yyyy-mm-dd hh24:mi:ss')) * 24 * 60
FROM DUAL)
ELSE
(SELECT (TO_DATE(AP.OVERBOOKINGDATE, 'yyyy-mm-dd hh24:mi:ss') -
TO_DATE(AP.CRTDATE, 'yyyy-mm-dd hh24:mi:ss')) * 24 * 60
FROM DUAL)
END EVERYDAY
FROM EXP_BOOKAPD AP
WHERE AP.RECSTS = '1')
GROUP BY NOTPERFECT_USER, SUBSTR(CRTDATE, 1, 10)
ORDER BY NOTPERFECT_USER, SUBSTR(CRTDATE, 1, 10);
SELECT SUBSTR(CRTDATE, 1, 10), NOTPERFECT_USER, AVG(EVERYDAY) EVERYDAY
FROM (SELECT AP.CRTDATE,
nvl(AP.NOTPERFECT_USER,AP.OVERBOOKINGUSER) NOTPERFECT_USER,
case when nvl(AP.NOTPERFECT_USER,AP.OVERBOOKINGUSER) not in (select HL_DATE FROM HOLIDAY)
and (substr(AP.NOTPERFECT_TIME,12,5) between 09:00 and 11:30)
and (substr(AP.CRTDATE,12,5) between 13:00 and 17:30)
then
TO_DATE(nvl(AP.NOTPERFECT_USER,AP.OVERBOOKINGUSER), 'yyyy-mm-dd hh24:mi:ss') - TO_DATE(AP.CRTDATE, 'yyyy-mm-dd hh24:mi:ss')) * 24 * 60 - 90
else
TO_DATE(nvl(AP.NOTPERFECT_USER,AP.OVERBOOKINGUSER), 'yyyy-mm-dd hh24:mi:ss') - TO_DATE(AP.CRTDATE, 'yyyy-mm-dd hh24:mi:ss')) * 24 * 60
end EVERYDAY
FROM EXP_BOOKAPD AP
WHERE AP.RECSTS = '1')
GROUP BY NOTPERFECT_USER, SUBSTR(CRTDATE, 1, 10)
ORDER BY NOTPERFECT_USER, SUBSTR(CRTDATE, 1, 10);
这个语句你先看一下,nvl(AP.NOTPERFECT_USER,AP.OVERBOOKINGUSER) not in (select HL_DATE FROM HOLIDAY)这个地方可能需要转格式,否则匹配不到数据的