[英]Not able to use LAG function in defining computed column in SQL Server 2014
[英]Computed Column (Microsoft SQL Server 2014)
書
| B_ID | Name | Unit_Price|
|------+---------+-----------|
| B01 | Math | 25 |
| B02 | Science | 34 |
訂購
| O_ID | B_ID | Quantity |Total_Price|
|------+------+-----------+-----------|
| O01 | B01 | 2 | ? |
| O02 | B02 | 5 | ? |
我怎樣才能乘以得到TOTAL_PRICE Order.Quantity
和Book.Unit_Price
其中Order.B_ID
是一個FK到Book.B_ID
。 謝謝!
聽起來更像您需要創建一個VIEW
:
CREATE VIEW dbo.OrderPrice
AS
SELECT O.O_ID,
O.B_ID,
O.Quantity,
O.Quantity * B.Unit_Price Total_Price
FROM Order O
INNER JOIN Book B
ON O.B_ID = B.B_ID;
您可以創建一個函數,其中計算列將使用該函數。
CREATE FUNCTION dbo.GetTotalPrice(INT @id)
RETURNS DECIMAL(19,4)
AS
BEGIN
DECLARE @ret DECIMAL(19,4)
SELECT @ret = O.Quantity * B.Unit_Price
FROM Order O
INNER JOIN Book B
ON O.B_ID = B.B_ID
WHERE B.B_ID = @id
IF (@ret IS NULL)
SET @ret = 0
RETURN @ret
END
ALTER TABLE dbo.Order
ADD Total_Price AS dbo.GetTotalPrice(O_ID)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.