批量生成的sql
alter Procedure Asset_spQueryChargePlan
(
@pi_ContractCode varchar(100),
@pi_StartTime datetime, --开始时间
@pi_Interval bigint, --间隔月数
@pi_PlanItems bigint, --生成的笔数
@pi_Cost money, --费用
@pi_InAdvanceDay int --提前的天数
)
as
declare @pt_tbAll table(ShouldGetDate datetime,CostStartDate datetime,CostEndDate datetime,SumMoney money)
declare @pt_RendEndDate datetime --合同结束时间
declare @pt_amount int --合同一个有多少笔
declare @pt_i int --生成的笔数
declare @pt_ShouldGetDate datetime --提前的天数
declare @pt_Enddate datetime --终止日期
select @pt_RendEndDate=RendEndDate from Asset_Contract where ContractCode=@pi_ContractCode
print @pt_RendEndDate
if @pt_RendEndDate is not null
begin
set @pt_amount=datediff(month,@pi_StartTime,@pt_RendEndDate)
print @pt_amount
if (@pt_amount%@pi_Interval)>0
set @pt_i=(@pt_amount/@pi_Interval)+1
else
set @pt_i=@pt_amount/@pi_Interval
print @pt_i
if @pi_PlanItems<=@pt_i
begin
while @pi_PlanItems>=1
begin
set @pt_ShouldGetDate=dateadd(day,-20,@pi_StartTime)
set @pt_Enddate=dateadd(month,@pi_Interval,@pi_StartTime)
if @pt_Enddate>@pt_RendEndDate
set @pt_Enddate=@pt_RendEndDate
insert into @pt_tbAll(ShouldGetDate,CostStartDate,CostEndDate,SumMoney)values(@pt_ShouldGetDate,@pi_StartTime,@pt_Enddate,@pi_Cost)
set @pi_PlanItems=@pi_PlanItems-1
set @pi_StartTime=dateadd(month,@pi_Interval,@pi_StartTime)
end
end
end
select * from @pt_tbAll
go
exec Asset_spQueryChargePlan '10000120','2012/3/28',3,4,12000,20
go