CREATE PROCEDURE pu_otest(
@bppf varchar(49),
@khjq datetime,
@a int
)
AS
declare @jcrq datetime
select @jcrq=结存日期 from stockpile where 部品品番=@bppf and convert(char(7),结存日期,121)=convert(char(7),dateadd(mm,-1,getdate()),121)
if (@jcrq is null)
begin
set @jcrq=dateadd(mm,datediff(mm,-1,dateadd(mm,-1,getdate())),-1) --上个月最后一天.
end if @a=1
begin
select * from composing where 产品编号 in(select 产品编号 from destine
where 交货日期>=@jcrq and 交货日期<=@khjq) and 部品品番=@bppf --计算这段时间内各产品在构成中用到此部品的全部数量. end
if @a=2
begin
select * from destine
where 产品编号 in(select 产品编号 from composing where 部品品番=@bppf)
and ((交货日期>=@jcrq) and (交货日期<=@khjq)) --计算这段时间内用的此部品的预定的所有数量.
end
GO
with sp1 do
begin
Close;
Prepared:=false;
ProcedureName:='pu_otest;1';
Parameters.Refresh;
Parameters.ParamByName('@bppf').Value:=Trim(cxLookupComboBox1.EditText);
Parameters.ParamByName('@khjq').Value:=cxDateEdit1.Date;
Parameters.ParamByName('@a').Value:=1;
Open;
end; with qry3 do
begin
close;
sql.Clear;
SQL.Add('exec pu_otest :a,:b,:c,:d output');
Parameters.items[0].Value:=Trim(cxLookupComboBox1.EditText);
Parameters.items[1].Value:=cxDateEdit1.Date;
Parameters.items[2].Value:=1;
Prepared:=True;
open;;
end;
请大大们帮我看一下,我错在那里了.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货