我试图在项目表中创建派生属性可用性,为此我需要创建一个连接吗?
可用性 检查今天的日期是否在 checkoutDate 和 returndate 之间。
这是ER图:
我试图在项目表中创建派生属性可用性,为此我需要创建一个连接吗?
可用性 检查今天的日期是否在 checkoutDate 和 returndate 之间。
这是ER图:
如果您想将其用作计算列,那么我建议使用 UDF。在您的图表中,您将可用性作为布尔值。SQL Server 没有布尔数据类型,所以我假设你的意思有点。这应该非常接近,但您需要对其进行测试:
CREATE FUNCTION dbo.GetValue
(
@barcode int
)
RETURNS bit
AS
BEGIN
DECLARE @field bit
SELECT @field = CASE WHEN GETDATE()
BETWEEN L.LastReturnDate AND R.ReturnDate THEN 1 ELSE 0 END
FROM [Item] I
JOIN [Load] L ON I.barcode = L.barcode
JOIN [Return] R ON I.barcode = R.barcode
WHERE I.barcode = @barcode
RETURN @field
END
GO
然后将其用作计算列:
ALTER TABLE dbo.Item
ADD Availability AS dbo.GetValue(barcode)
话虽如此,这可能更适合视图。
是的,您需要加入。
我建议您使用视图将来自不同表的数据放在一起。