【发布时间】:2019-02-21 19:37:46
【问题描述】:
我需要有关此代码的帮助吗? 结果是:
- 乔恩 15
- 鲍勃 38
- 史蒂夫 180
- 鲍勃 14
- 史蒂夫 240
- 史蒂夫 180
- 卢克203
但我是这样认为的:
- 乔恩 15
- 鲍勃 38
- 史蒂夫 240
- 卢克203
用户循环的最大值
DECLARE
v_z VARCHAR2(50);
max_s VARCHAR2(50);
BEGIN
max_s := -9999999999999;
FOR i IN
(SELECT user,
in,
out
FROM emp)
LOOP
FOR j IN
(SELECT user,
in,
out
FROM emp
AND user = i.user
)
LOOP
IF i.in < j.in AND i.out < j.out AND i.out > j.in AND i.out < j.out AND i.user = j.user
THEN
v_z := ROUND((j.out-i.in),4)*1440 ;
FOR r IN v_z..v_z
LOOP
IF r > max_s THEN
dbms_output.put_line (i.user || ' ' ||r);
END IF;
END LOOP;
END IF;
END LOOP;
END LOOP;
END;
表格示例:
user in out
steve 7:00 9:30
steve 8:00 10:00
steve 9:00 11:00
我需要 11:00 - 7:00 给史蒂夫的结果 不是 10 - 7:00 或 11:00 - 8:00,如果条件为真,我想要此用户的最大值
【问题讨论】:
标签: sql oracle plsql plsqldeveloper