我有一个问题,我创建了一个完美工作的物化 View 。但是现在我需要对我 View 中的数据进行一些计算。该 View 包含在不同项目中工作的员工的工作时间。每个项目都有固定的时间 (time_available),员工必须在该时间内完成项目。为了更好地展示,我将工作时间汇总到一个月。我想在这里完成的是“项目固定金额”减去员工“工作时间”的“简单”减法。 这里的问题是有些项目的持续时间超过一个月。自然地,我每个月的所有值都在一个元组中。因此,当我有 3 个月的工作时间用于某个项目时,我的观点如下所示:
MV_Working_Hours:
Project --- Time_Available --- DATE --- Employee --- Working Days
Project A --- 50 Days --- 2011-05 --- Mr. A --- 15 Days
Project A --- 50 Days --- 2011-06 --- Mr. A --- 16 Days
Project A --- 50 Days --- 2011-07 --- Mr. A --- 16 Days
我想做的是像这样计算剩余天数:
Project --- Time_Available --- DATE --- Employee --- Working d in Month ---remaining days
Project A --- 50 Days --- 2011-05 --- Mr. A --- 15 Days --- 35 Days
Project A --- 50 Days --- 2011-06 --- Mr. A --- 16 Days --- 19 Days <--- I get here 34 which is for my need wrong !!!
Project A --- 50 Days --- 2011-07 --- Mr. A --- 16 Days --- 3 Days
有没有一种方法可以使用“仅”sql 来实现这一点,还是我必须在 OWB 中使用 pl/sql?我用的是OWB版本11gR2
谢谢
最佳答案
您应该能够使用分析函数生成运行总计。有点像
SELECT project,
time_available,
date_column,
employee,
working_days_in_month,
time_available -
sum(working_days) over (partition by project
order by date) remaining_days
FROM mv_working_hours
关于sql - 物化 View 中的动态计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7032584/