我应该有一个列自动更新每个成员的债务,每年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