码迷,mamicode.com
首页 > 其他好文 > 详细

[易飞]指定条件最新进价

时间:2015-01-27 13:21:35      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:

     需求:

主导部门

供应商

品号

名称

规格

实际单价

原单价

进货数量

价格差异

金额差异

核价单头自定义字段PURTL.UDF01


说明

1.供应商、品号、名称、规格、实际单价、进货数量取采购进货单的数据

2.原单价=核价单当前生效日期里的原单价

3.价格差异=实际单价-原单价

4.金额差异=价格差异*进货数量

举例说明:

316日有一笔进货记录:供应商甲,A进货数量500,进货单价5块钱,进货金额=500*5=2500

条件1215日有一笔核价单,供应商甲,A核价单价是4元,原单价是6元生效日期为215日。

结果1

供应商

品号

名称

规格

实际单价

原单价

进货数量

价格差异

金额差异

A

5

6

500

-1

-500


条件2

215日有一笔核价单,供应商甲,A核价单价是4元,原单价是6元生效日期为215日。

315日有一笔核价单,供应商甲,A核价单价是5元,原单价是4元生效日期为 315日。

结果2

供应商

品号

名称

规格

实际单价

原单价

进货数量

价格差异

金额差异

A

5

4

500

1

500


条件3

215日有一笔核价单,供应商甲,A核价单价是4元,原单价是0元生效日期为215日。

如果核价单原来价格是0,不输出结果。

条件4

如果供应商甲,产品A 无核价单,不输出结果。

Create Function 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);
with b as(
select TM004,TM014,TM010,TL004 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.TM010,0) from (
select b.TM004,b.TM010,ROW_NUMBER() over(partition by b.TM004 order by b.TM014 desc )rn
from  b ) t
where rn=1

return @price
end

??

[易飞]指定条件最新进价

标签:

原文地址:http://blog.csdn.net/david_520042/article/details/43193265

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!