我尝试创建一个计算列,但由于其中一列位于另一个表中,我知道我需要创建一个 udf。
这是 ERD 的链接,以便您可以查看其中的关系
http://imageshack.us/photo/my-images/23/databaseassignment2new.png/
这就是我想做的。
CheckOutDate + loanperiod = lastreturndate
So the result would look something like this
Checkoutdate loanperiod lastreturndate
2012-1-01 3 2012-4-01
这就是我到目前为止所拥有的
CREATE FUNCTION dbo.Getvaludates( @laastreturndate DATETIME)
RETURNS DATETIME
AS
BEGIN
DECLARE @lastReturndate DATETIME
SELECT @lastReturndate= dateadd(month,loanperiod,CheckOutDate)
FROM [Loan] I
JOIN [Item] L ON I.barcode = L.barcode
JOIN [Return] R ON I.barcode = R.barcode
WHERE I.barcode = @lastreturndate
RETURN @lastReturndate
END
GO
然后我需要将其添加到计算列中
ALTER TABLE dbo.Item
ADD lastreturndate AS dbo.Getvaluedate(lastreturndate)
我认为你的 UDF 应该是这样的:
CREATE FUNCTION dbo.Getvaluedate( @barcode int)
RETURNS DATETIME
AS
BEGIN
DECLARE @lastReturndate DATETIME
SELECT @lastReturndate= dateadd(month,loanperiod,CheckOutDate)
FROM [Loan] I
JOIN [Item] L ON I.barcode = L.barcode
JOIN [ItemDetails] ID ON L.isbn = ID.isbn
WHERE I.barcode = @barcode
RETURN @lastReturndate
END ;
进而:
ALTER TABLE Loan ADD lastreturndate AS dbo.Getvaluedate(barcode);
这是一个SQL 小提琴演示
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)