我正在使用Microsoft SQL Server,我还在学习。我有两个表,一个产品表和一个订单详细信息表。产品表包含价格,然后订单详细信息表包含产品参考,产品数量和总价格。以下是两个表格:
list_fields()
我怎样才能使order_detail_total成为controller
的计算列?
答案 0 :(得分:1)
感谢@Andy K,我提出了这个解决方案:
--Create Product Table
CREATE TABLE Products.Product
(
product_id INT NOT NULL PRIMARY KEY IDENTITY,
product_name VARCHAR(40) NOT NULL,
product_desc VARCHAR(5000),
product_price SMALLMONEY NOT NULL CHECK (product_price >= 0)
);
GO
--Create a function to calculate the order details total
CREATE FUNCTION Orders.calcOrderDetailTotal(@quantity INT, @productId INT)
RETURNS MONEY
AS
BEGIN
DECLARE @price SMALLMONEY
SELECT @price = product_price FROM Products.Product AS TP
WHERE TP.product_id = @productId
RETURN @quantity * @price
END
GO
--Create Order Details Table
CREATE TABLE Orders.Order_detail
(
order_detail_id INT NOT NULL PRIMARY KEY IDENTITY,
product_id INT NOT NULL,
product_quantity INT NOT NULL CHECK (product_quantity >= 0),
order_detail_total MONEY NOT NULL,
FOREIGN KEY (product_id) REFERENCES Products.Product
);
这对我在我创建的测试数据库上起作用。