我應該有一個列自動更新每個成員的債務,每年SQL服務器添加計算列與WHILE循環
使用60,000直到2013年,之後,它成爲了舊有債務75,000
我還在程序中使用了一個「活動」列,如果該成員仍然活動,它被設置爲「YES」,如果他停下來,它會更改爲「NO」 還有另一個名爲「 pDebt「,代表支付的債務
它背後的基本公式是一個簡單的AmountOfDebt - PaidDebt(AKA @Amount - pDe BT)
我試圖讓新表,但我有2個問題
的列(1.7「dateOfRegistration」 & L.10「活動」)不斷給了著名的「無效列名「,而其他計算列已經被使用並且已經在其他計算列中使用了
PS:是的,我沒有使用Ctrl + Shift + R,猜測有輸入問題
我無法將我的WHILE循環連接到ADD函數以添加新表格。
這裏是我的代碼,
Use [Project Alpha1]
GO
BEGIN
DECLARE @Amount MONEY = 0,
@IndividualYear int = YEAR([dateOfRegistration])
ALTER TABLE initialTable
ADD fDebt1 AS (WHILE (@IndividualYear < GETDATE() AND [Activity] = 'YES')
BEGIN
IF @IndividualYear = 1998 SET @Amount = @Amount + 60000
Else
IF @IndividualYear = 1999 SET @Amount = @Amount + 60000
Else
IF @IndividualYear = 2000 SET @Amount = @Amount + 60000
Else
IF @IndividualYear = 2001 SET @Amount = @Amount + 60000
Else
IF @IndividualYear = 2002 SET @Amount = @Amount + 60000
Else
IF @IndividualYear = 2003 SET @Amount = @Amount + 60000
Else
IF @IndividualYear = 2004 SET @Amount = @Amount + 60000
Else
IF @IndividualYear = 2005 SET @Amount = @Amount + 60000
Else
IF @IndividualYear = 2006 SET @Amount = @Amount + 60000
Else
IF @IndividualYear = 2007 SET @Amount = @Amount + 60000
Else
IF @IndividualYear = 2008 SET @Amount = @Amount + 60000
Else
IF @IndividualYear = 2009 SET @Amount = @Amount + 60000
Else
IF @IndividualYear = 2010 SET @Amount = @Amount + 60000
Else
IF @IndividualYear = 2011 SET @Amount = @Amount + 60000
Else
IF @IndividualYear = 2012 SET @Amount = @Amount + 60000
Else
IF @IndividualYear = 2013 SET @Amount = @Amount + 60000
Else
SET @Amount = @Amount + 75000
SET @IndividualYear = @IndividualYear + 1
END
@Amount - pDebt)
我很抱歉,我知道我沒有輸入正確的代碼(最後一行說@Amount - pDebt)結束,但因爲我的WHILE循環不工作,我真的不認爲這是必要的,通過工作,直到最終正確要麼
這是SQL服務器上進行
臨屋對於讀書的人,我會很感激,即使是最細微的幫助。
這聽起來像一個非常怪異的設計給我。我想他們也會付款,並跟蹤個人付款,所以你會有某種類型的分類賬表。爲什麼不建立一個運行的SQL作業插入債務記錄而不是重新計算幾個字段?這樣,該表格將始終提供帳戶餘額。 – UnhandledExcepSean