USE [AisLock20120221]
GO
/****** Object: StoredProcedure [dbo].[AAAAA_DDMangement] Script Date: 05/07/2012 08:31:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- ALTER date: <2012/01/12,,>
-- Description: <采购管理,,>
-- =============================================
alter procedure [dbo].[AAAAA_CGManage]
@Year varchar(4),
@Month varchar(2)
as
begin
declare @FromDate1 int
if @Year='' begin set @Year=Year(GETDATE()) end
if @Month='' begin set @Month=Month(GETDATE()) end
if datename(qq,@Year+'-'+@Month+'-1')=1 begin set @FromDate1=10 end
else if datename(qq,@Year+'-'+@Month+'-1')=2 begin set @FromDate1=1 end
else if datename(qq,@Year+'-'+@Month+'-1')=3 begin set @FromDate1=4 end
else if datename(qq,@Year+'-'+@Month+'-1')=4 begin set @FromDate1=7 end
select distinct t3.FName as 供应商名称,
t2.FNumber 物料代码,t2.FName as 品名,t2.FModel as 规格,BQ.本期采购价格,
SQ.上期采购价格,NC.年初采购价格,SJD.上季度采购价格,BN.本年采购均价
from ICStockBillEntry t1 inner join ICStockBill v1 on t1.FInterID=v1.FInterID
inner join t_ICItemcore t2 on t1.FItemID=t2.FItemID
inner join t_Supplier t3 on v1.FSupplyID=t3.FItemID
left join (
select FItemID,SUM(FAmount)/sum(Fqty) as 本期采购价格 from icstockbillentry t1
inner join ICStockBill v1 on t1.FInterID=v1.FInterID
where YEAR(FDate)=@Year and month(FDate)=@Month
group by FItemID having sum(Fqty)<>0
) as BQ on BQ.FItemID=t1.FItemID
left join (
select FItemID,SUM(FAmount)/sum(Fqty) as 上期采购价格 from icstockbillentry t1
inner join ICStockBill v1 on t1.FInterID=v1.FInterID
where YEAR(FDate)=@Year and month(FDate)= month(dateadd(month,-1,@Year+'-'+@Month+'-1'))
group by FItemID having sum(Fqty)<>0
) as SQ on SQ.FItemID=t1.FItemID
left join (
select FItemID,SUM(FAmount)/sum(Fqty) as 年初采购价格 from icstockbillentry t1
inner join ICStockBill v1 on t1.FInterID=v1.FInterID
where YEAR(FDate)=@Year and month(FDate)='1'
group by FItemID having sum(Fqty)<>0
) as NC on NC.FItemID=t1.FItemID
left join (
select FItemID,SUM(FAmount)/sum(Fqty) as 上季度采购价格 from icstockbillentry t1
inner join ICStockBill v1 on t1.FInterID=v1.FInterID
where YEAR(FDate)=@Year and month(FDate) between @FromDate1
and @FromDate1+2
group by FItemID having sum(Fqty)<>0
) as SJD on SJD.FItemID=t1.FItemID
left join (
select FItemID,SUM(FAmount)/sum(Fqty) as 本年采购均价 from icstockbillentry t1
inner join ICStockBill v1 on t1.FInterID=v1.FInterID
where YEAR(FDate)=@Year
group by FItemID having sum(Fqty)<>0
)as BN on BN.FItemID=t1.FItemID
where FCancellation=0
end