首页 > 解决方案 > 计算 SQL Server 中的平均速率

问题描述

declare @table as table
(
    LedgerId int,
    Transaction_Type varchar(50),
    Inward_qty decimal (18,3),
    Inward_rate decimal (18,3)
)    

insert into @table 
values (1, 'Issue', 67.320, 473.66),
       (2, 'Receipt', 201.290, 657.90),
       (3, 'Receipt', 94.860, 473.66)

select * from @table

我想计算公式找到收据的平均费率,从剩余的问题中减去将乘以我们将拥有的值的费率,而不是总价值除以总收据数量,我们将得到一个内向费率我不知道如何做这个

公式

按上述计算输出布局

declare @table1 as table
(
LedgerId int,
Transaction_Type varchar(50),
Inward_qty decimal (18,3),
Inward_rate decimal (18,3)

)
 insert into @table1 values(1,'Issue',67.320,473.66),(2,'Receipt',133.970,657.90),(3,'Receipt',94.860,473.66)
 
 select * , inward_Value = Inward_qty * Inward_rate into #temp from @table1

 declare @Qty decimal (18,3)
 declare @value decimal (18,3)

 set @Qty= (select sum(Inward_qty) from #temp where Transaction_Type ='Receipt' )
 set @value =(select sum(inward_Value) from #temp where Transaction_Type ='Receipt' )

 declare @Rate decimal (18,3) = @Value/@Qty
 select @Rate


 drop table #temp

标签: sqlsql-server

解决方案


推荐阅读