最近接到公司财务部长大人的需求,需要通过采购和研发部门的降本计划,统计出各部门的降本信息,然后如果让财务部的小妹手工统计的话,那简直是太困难了,如是求助我们IT,IT通过仔细分析得出降本计划数据来源哪里,思索一番得出如下逻辑
核价单单头表包含信息:核价日期、供应商、主导部门
核价单单身表包含信息:品号、核价单价、原单价、生效日期、失效日期
采购进货单单头信息:单别、单据号、供应商、单据日期
采购进货单单身信息:品号、名称、规格、进货单价、税率
如是哈数想到办法难点是如何取到原单价,最终报表如下:
原单价取价逻辑为当进货单单据日期在核价单生效日期和失效日期之间时抓取对应的核价单原单价信息。
如是哈数用哈数获取原单价,函数如下:
ALTER Function [dbo].[UF_GetLastPrice](
@TL004 AS nvarchar(10),
@date as nvarchar(8),
@item as nvarchar(30)
)returns decimal(18,6)
as
begin
--set @TL004='09001'
--set @date='20150116'
--set @item='10102069620001';
declare @price as decimal(18,6);
declare @zdbm as nvarchar(20);
with b as(
select TM004,TM014,TM018,TL004,PURTL.UDF01 from PURTL inner join PURTM ON TL001=TM001 AND TL002=TM002
where TM011='Y' AND TL004=@TL004 and TM014<=@date and TM004=@item)
select @price=isnull(t.TM018,0),@zdbm=t.UDF01 from (
select b.UDF01,b.TM004,b.TM018,ROW_NUMBER() over(partition by b.TM004 order by b.TM014 desc )rn
from b ) t
where rn=1
return @price
end
这样的话我就可以获取到原单价了,可以通过FR实现想要的信息。
@传说哥,请加分
|