Sql server 我可以使用一个计算字段来;计算柱规格“;用于其他场计算?
我有两张儿童桌。借款人名单,2。返回列表 我在返回列表表中有以下字段:Sql server 我可以使用一个计算字段来;计算柱规格“;用于其他场计算?,sql-server,Sql Server,我有两张儿童桌。借款人名单,2。返回列表 我在返回列表表中有以下字段: 1.RETURNLISTID-->PKEY 2.MEMBERSHIPID -->FKEY 3.BOOKREFID--FKEY 4.MEMBERFULLNAME-->CALCULATED FIELD(FOR THE CORRESPONDING MEMBERSHIPID GET VALUE FROM MEMBERS TABLE) 5.BORROWDATE-->CALCULATED FIELD(FOR
1.RETURNLISTID-->PKEY
2.MEMBERSHIPID -->FKEY
3.BOOKREFID--FKEY
4.MEMBERFULLNAME-->CALCULATED FIELD(FOR THE CORRESPONDING MEMBERSHIPID GET VALUE FROM MEMBERS TABLE)
5.BORROWDATE-->CALCULATED FIELD(FOR THE CORRESPONDING MEMBERSHIPID,BOOKREFID GET VALUE FROM BORROWERLIST TABLE)
6.ACTUALRETURNDATE--> CALCULATED FIELD(FOR THE CORRESPONDING MEMBERSHIPID,BOOKREFID GET VALUE FROM BORROWERLIST TABLE)
7.USERRETURNDATE-->USER WILL ENTER
8.FINEAMT-->IT SHOULD BE A CALCULATED FIELD.I HAVE CREATED A FUNCTION.
我创建了一个函数,使用ACTUALRETURNDATE和USERRETURNDATE计算fineamt。我在字段中调用函数时出错
所以,我的疑问是,我能用一个计算出的场来计算吗
在下面找到我的函数
create function dbo.GETFINEAMT(@ACTUALRETURNDATE DATETIME ,@USERRETURNDATE DATETIME)
RETURNS INT
AS
BEGIN
DECLARE @FINEAMT INT
DECLARE @DATEDIFF INT
SET @DATEDIFF=CONVERT(INT,(DATEDIFF(DD,'@ACTUALRETURNDATE','@USERRETURNDATE')))
SET @DATEDIFF = ABS(@DATEDIFF)
SET @FINEAMT=@DATEDIFF *10
RETURN @FINEAMT
END
GO
若所有计算列的值都来自UDF,那个么您一定是在某个地方出错了。所以hv会查看您的代码 看到这个直接的示例抛出错误
Declare @t table(col int,col2 as col+1 PERSISTED,col3 as col2+1)
insert into @t values(1)
select * from @t
将结果集插入到#表中,然后将其传递给函数能否添加表和函数的创建脚本?我删除了该finemant列,然后使用查询ALTER table RETURNLIST将finemant添加为dbo.getfinemant(ACTUALRETURNDATE,USERRETURNDATE)。但我还是犯了这个错误。“表'RETURNLIST'中的计算列'ACTUALRETURNDATE'不允许在另一个计算列定义中使用。”在上面添加了我的函数。ACTUALRETURNDATE列是计算列。我删除了该fineamt列,并使用查询ALTER table RETURNLIST ADD fineamt AS dbo.GETFINEAMT(ACTUALRETURNDATE,USERRETURNDATE)再次添加。但我还是犯了这个错误。“表'RETURNLIST'中的计算列'ACTUALRETURNDATE'不允许在另一个计算列定义中使用。”在上面添加了my函数。ACTUALRETURNDATE列是计算列。