我有一个payment_schedule表:基于计划表的预计付款?
CREATE TABLE [dbo].[scheduled_transaction](
[id] [int] IDENTITY(1,1) NOT NULL,
[description] [varchar](20) NOT NULL,
[account_id] [int] NOT NULL,
[account_transaction_type_id] [int] NOT NULL,
[third_party_id] [int] NOT NULL,
[first_payment_date] [date] NOT NULL,
[last_payment_date] [date] NULL,
[payment_frequency] [int] NOT NULL,
[payment_frequency_type_id] [int] NOT NULL,
[payment_amount] [decimal](18, 2) NOT NULL,
[notes] [varchar](100) NULL,
[deleted] [datetime] NULL,
[createuser] [int] NOT NULL,
[createdate] [datetime] NOT NULL,
[lastupdateuser] [int] NULL,
[lastupdatedate] [datetime] NULL) ON [PRIMARY]
)
该表保存计划的缴费为我的家庭系统。频率只是每日,每周或每月。因此,支付频率= 1,支付频率类型= 3(每月)表示每一个月支付一次。
我也有一个日历表,这是一个大型时期(2000年至2040年)之间的所有日期表。这只是一个参考表,我认为这对我将要做的事很有用。
我现在想要做的是创建一个过程,该过程将从给定的startdate返回给定的enddate的日期表,并且对于每个日期,返回应该在该日期完成的任何付款,基于我日程安排表。
我的计划是创建一个临时表的所有日期在那里款项将因:
DECLARE @StartDate DATE
DECLARE @EndDate DATE
Set @StartDate = '01-JAN-2013'
SET @EndDate = '31-DEC-2013'
DECLARE @Schedule TABLE
(
ID INT NOT NULL IDENTITY(1,1),
TransactionDate DATE NOT NULL,
scheduled_transaction_id INT NOT NULL
)
一旦这样填充,然后我就可以使用日历表,并创建一个平衡的预测。
但是,将数据导入该表格非常棘手。
我想我需要通过每个scheduled_transaction,然后,通过日历运行,看看是否会在该日期完成交易?然后将该行插入我的临时表中?
那么,我认为这将是嵌套游标。对于每个scheduled_transaction行,然后为每个日历行,并使用某种形式的'DATEADD'或什么?
任何人都可以帮助我吗?
我有点得到你的意见,但我认为一个简单的例子去与你的问题描述会让事情更清楚。 – jcwrequests
完整源代码的最终解决方案? – Kiquenet