这就是我要做的事情:我有一些数据代表学生应该通过给定基准(在本例中为 6 月 15 日)达到的目标。我正在查看一个事务表并运行一些汇总查询,试图找出在给定时间点有多少学生“在轨道上”,使用“填补数据空白”和“填补空白Inventory Table' 用于计算运行/累积总数并加密数据。 http://download.oracle.com/docs/cd/B28359_01/server.111/b28313/analysis.htm#i1014934
为了在表格的每一行中表达学生的“目标进度”,我试图计算出一年中剩下多少时间到 6 月 15 日,让我可以将运行总数与按比例计算的版本进行比较目标。
我的数据看起来像:
Measure Goal Year Week Date (YYYY-WW)
106141 400000 2011 42 2011-42
128886 400000 2011 43 2011-43
145449 400000 2011 44 2011-44
156921 400000 2011 45 2011-45
我有一个解决方法,但它真的很糟糕而且很糟糕。
,case
when year = 2012 then 24 - week
when year = 2011 then (52 - week) + 24
else null
end as weeks_to_june_15
(6 月 15 日是 2012 年的第 24 周)。有没有更优雅甚至稍微正确的方法来做到这一点?每次我尝试使用日期函数进行计算时,我都会得到非法数字或文字与格式字符串不匹配的错误。
似乎有人完成了与我在这里尝试做的事情有些相关的事情:https : //forums.oracle.com/forums/thread.jspa?threadID=633028 但我不确定是否使用 IYYY 和 IW 重建该日期会带我去我想去的地方。
如果可能的话,使用 Oracle 11gR2 Express 并希望在数据库中执行此操作。
谢谢!