27,581
社区成员
发帖
与我相关
我的任务
分享--实现的存储过程
Alter Proc sp_LHZF as
Create Table #Temp1(
DDID nvarchar(50),
LHName nvarchar(50),
LHQY int,
ZF nvarchar(10)
)
insert #Temp1(DDID,LHName,LHQY,ZF)
Select D.DDID,L.LHName,D.LHQY,0 as ZF
From LHList L LEFT OUTER JOIN DDList D ON L.LHID=D.LHID
Order by L.LHName,D.DDDate
Declare QY Cursor SCROLL --滚动游标,无Scroll则是只进游标
For Select DDID from #Temp1
Declare @D nvarchar(50),
@N1 nvarchar(50),
@N2 nvarchar(50),
@Q1 nvarchar(50),
@Q2 float,
@Q3 float
Open QY
Fetch First From QY into @D
While @@Fetch_Status = 0
Begin
Select @Q3=LHQY,@N2=LHName from #Temp1
Where DDID=@D
IF @N2=@N1
Begin
IF @Q2<>0
set @Q1=Convert(nvarchar(10),Round((@Q3-@Q2)/@Q2,2)*100)+'%'
Else
Set @Q1=0
End
Else Set @Q1=@N2+'号料涨幅:'
Set @N1=@N2
Update #Temp1
Set ZF=@Q1
WHERE DDID=@D
Set @Q2=@Q3
Fetch Next From QY into @D
end
close QY
deallocate QY
Select * From #Temp1
--假设前提为:
Create Table LHList(
LHID int IDENTITY(1,1),--料号ID
LHName nvarchar(50),--料号名
)
GO
Create Table DDList(
DDID nvarchar(50) Primary Key,--订单ID
LHID int,
LHQY int,--料号数量
DDDate Datetime,--订单时间
)
GO
Insert LHList(LHName) Values('A')
Insert LHList(LHName) Values('B')
Insert LHList(LHName) Values('C')
GO
Insert DDList(DDID,LHID,LHQY,DDDate) Values ('XX001',1,500,GetDate())
Insert DDList(DDID,LHID,LHQY,DDDate) Values ('XX002',1,1500,GetDate())
Insert DDList(DDID,LHID,LHQY,DDDate) Values ('XX007',1,5000,GetDate())
Insert DDList(DDID,LHID,LHQY,DDDate) Values ('XX003',2,300,GetDate())
Insert DDList(DDID,LHID,LHQY,DDDate) Values ('XX004',2,900,GetDate())
Insert DDList(DDID,LHID,LHQY,DDDate) Values ('XX008',2,3800,GetDate())
Insert DDList(DDID,LHID,LHQY,DDDate) Values ('XX005',3,250,GetDate())
Insert DDList(DDID,LHID,LHQY,DDDate) Values ('XX006',3,700,GetDate())
Insert DDList(DDID,LHID,LHQY,DDDate) Values ('XX009',3,2600,GetDate())
GO