SQL查询用于分割多个项目/行的运费

时间:2012-11-08 15:21:22

标签: sql sql-server sql-server-2005 split

我正在尝试创建一个允许我在多行上拆分单个数字的查询。

例如,采购订单x可能分配了15个项目。运费是比如说9.95。如何计算9.95的1/15,然后以运费的1/15更新库存的成本价格?

因此,该项目的成本价格将从4.50增加到5.16(4.50 + 0.66)。

2 个答案:

答案 0 :(得分:2)

这是SQL Server的解决方案:

update  ol
set     price = price + 5.0 / ol.LineCount
from    [Order] o
join    (
        select  *
        ,       count(*) over () as LineCount
        from    OrderLine
        ) ol
on      o.ID = ol.OrderID
where   o.OrderNr = 'Ord1';

Live example at SQL Fiddle.

如果您正在使用其他DBMS,请更新您的帖子!

答案 1 :(得分:0)

我创建了一个产品表并更新了商品的运费。 希望这就是你要找的东西。

INSERT INTO [TravelAgentDB].[dbo].[Product]
           ([ID]
           ,[Name]
           ,[Price]
           ,[shippingPrice])
     VALUES
          (1,'Nexus 7' , 250 , 20),
          (2,'Nexus 7 case' , 50 , 20),
          (3,'Nexus 7 headphone' , 20 , 20)
GO


select * from product
Declare @itemsCount int
Select @itemsCount = count(*) From product where id in (1,2,3)
Declare @totalShippingPrice Decimal(18,2) = 9.95
Declare @shippingPriceperItem Decimal(18,2) = @totalShippingPrice / @itemsCount

Update Product 
set [shippingPrice] = @shippingPriceperItem
Where id in (1,2,3)
select * from product