我有一個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