我问this question in regard to SQL Server,但什么是对Oracle环境中(10克)的答案吗?我可以使用Oracle SQL从计划信息中绘制实际日期吗?
如果我有一个表,包含调度信息暗示特定的日期,是否有可以写入的信息转化为实际行,使用类似MSSQL的表常见合表情,也许是一个SQL语句?
考虑这些列的付款计划表:
- 起始日期 - 计划开始日期(第1款项应在此日期)
- 期限 - 长度中的月日程表
- 频率 - 重复之间的月份数
- PaymentAmt - 付款金额:-)
SchedID StartDate Term Frequency PaymentAmt ------------------------------------------------- 1 05-Jan-2003 48 12 1000.00 2 20-Dec-2008 42 6 25.00
是否有一个SQL语句,让我从上面到下面?
Running SchedID Payment Due Expected Num Date Total -------------------------------------- 1 1 05-Jan-2003 1000.00 1 2 05-Jan-2004 2000.00 1 3 05-Jan-2005 3000.00 1 4 05-Jan-2006 4000.00 2 1 20-Dec-2008 25.00 2 2 20-Jun-2009 50.00 2 3 20-Dec-2009 75.00 2 4 20-Jun-2010 100.00 2 5 20-Dec-2010 125.00 2 6 20-Jun-2011 150.00 2 7 20-Dec-2011 175.00
您的想法得到了赞赏。
我在尝试你的建议,但我没有太多的运气。第二个查询导致无限循环。我如何避免这种情况? – witttness 2009-08-04 19:05:11
我不确定CONNECT BY PRIOR是否支持指向同一列 - 没有Oracle进行测试。我也错过了“哪里q.PaymentNum <= s.Term/s.Frequency” – 2009-08-04 19:25:39
我更新了在开始日期之前的连接,因为这实际上是指示顺序,但我不知道是否可以指向相同柱。 – 2009-08-04 19:49:56