SQL开发之供应商物料分析
很多公司都会可能存在,一个物料由多个供应商供货,当然,K3中是有这种功能,但有很多时候,往往会需要一个总体性的报表来查看多个供应商的情况和进货的 比例问题。我公司是允许从多供应商进货,而且这方面没有作维护,也就是说,只有通过报表才会知道进货的情况。以下是分析并生成报表的存储过程。
CREATE PROCEDURE [dbo].[PO_Supplier]
@bdatedatetime='20070401' --定义起始时间参数,从此时间开始的PO将会被分析,采用了默认值
AS --从PO中找出存在多供应商的物料,然后再列出相关的汇总数据到临时表
select FFullnumber,FItemName,FSupplyIDName,sum(fauxqty) Demand into #sum_pofrom vwICBill_26
where FDate>=@bdate and FFullnumber in
(
select FFullnumber from
(
select FFullnumber,FItemName,FSupplyIDName,sum(fauxqty) Demand from vwICBill_26where FDate>=@bdate
group by FFullnumber,FItemName,FSupplyIDName
) a
group by FFullnumber
having count(*)>1
)
group by FFullnumber,FItemName,FSupplyIDName
----------------------------------------------------------------------------------------------------------------------------------------------------
--从临时表抽取数据,并左联接到临时表上,得到一个有明细和采购占比的的报表 select a.*,b.sum_demand,(a.demand/b.sum_demand)*100 Ratefrom #sum_po a
left join
(select ffullnumber,sum(demand) Sum_Demand from #sum_po group by ffullnumber) b
on a.ffullnumber=b.ffullnumber drop table #sum_po --清除临时表
GO 注意,此处取的时PO上的需求数量,如果公司入库数与需求数量差异比较大,可以取入库数,如果价格变动大的物料,更可以用金额来计算比例,更能说明问题。 |