易飞ERP--自定义报表之采购价格分析功能表

[本文主要是自己做的备忘]

需求与难点:

1.要在自定义报表中实现;

2.要有现价、近价、前3年各年均价、核价、去年同期、前十二月平均单价、去年最后一次进价放在一张表进行对比分析,并做出简单的分析判断;

3.因为第二点,要用到动态SQL和存储过程,而易飞自定义报表不支持动态SQL,所以间接采用了用 视图作为中转。

做过的东西老是忘记,所以记录了下面是步骤备记:


一.create proc,目的是用动态SQL生成以上数据(这里抓取了全部的数据,如果数据量太大,只需抓取几年的数据,则启用@num参数即可,在下面的存储过程中我有备注了@num,启用时,只要去掉前面的'--'即可,同时的后面的where条件也要去掉'--'):

if exists(select *from sysobjects where name='jfpurprice')
drop proc jfpurprice
go
create proc jfpurprice --@num numeric 
as begin
---采购各类价格汇总表
declare @tab table(wid varchar(100),今年价 varchar(100),今年量 varchar(100),去年价 varchar(100),去年量 varchar(100)
,前年价 varchar(100),前年量 varchar(100),前年价L varchar(100),前年量L varchar(100),前年价LL varchar(100),前年量LL varchar(100))
declare @sql as Nvarchar(4000)
set @sql='select TD004'
select @sql=@sql + ',avg(case substring(TC003,1,4) when '''+item+'''then TD010 end) As ['+item+'],'
                 + ' isnull(cast(cast(sum(case substring(TC003,1,4) when '''+item+'''then TD008 end) as numeric(16,2))   
as varchar(17)),'+'''--'''+') as ['+item+'采购量'+']' 
from (select  distinct top 10 substring(TC003,1,4)as item  from PURTD left join PURTC on TD001=TC001 and TD002=TC002
where substring(TC003,1,6)>=substring(convert(varchar(20),dateadd(year,-4,getdate()),112),1,6)
  and substring(TC003,1,6)<=substring(convert(varchar(20),dateadd(year,-0,getdate()),112),1,6)
order by substring(TC003,1,4) desc ) as A 
select @sql=@sql+'from PURTD left join PURTC on TD001=TC001 and TD002=TC002 where TC014='+'''Y'''+'
group by TD004'
--
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值