我有一个名为orderItems的表,它有两列,数量和单价。它在该表中也有一个外键ordernumber
。
我有另一个名为ordergroup的表,主键为ordernumber
,其中包含SavedTotal列,该列是基于数量*单位价格的订单总数,用于引用该ordernumber
的所有订单商品行。
现在我正在努力的是sql查询,它可以根据特定的订单号获取所有订单商品并计算总成本。
我已经设法进行乘法,但是我错过了SUM,这是我的sql查询(基于SQL Server)到目前为止。
UPDATE OrderGroupNew
set OrderGroupNew.SavedTotal = OrderItemNew.UnitPrice*OrderItemNew.QUANTITY
FROM OrderItemNew
inner join OrderGroupNew on OrderItemNew.OrderNumber=OrderGroupNew.OrderNumber
感谢任何帮助
答案 0 :(得分:1)
UPDATE OrderGroupNew
SET SavedTotal = (
SELECT SUM(UnitPrice * Quantity)
FROM OrderItemNew
WHERE OrderNumber = OrderGroupNew.OrderNumber
)
答案 1 :(得分:0)
您也可以使用TVP:
;With o as (
select OrderItemNew.OrderNumber as OrderNumber,
SUM(OrderItemNew.UnitPrice*OrderItemNew.QUANTITY) as OrderSum
Group by OrderItemNew.OrderNumber)
UPDATE OrderGroupNew
set OrderGroupNew.SavedTotal = o.OrderSum
FROM o
INNER JOIN OrderGroupNew on o.OrderNumber=OrderGroupNew.OrderNumber
第一个答案也是正确的。选择最佳的性能:)(不知道哪个是最好的,说实话!)