我需要在表A中插入以下数据,并在表B中的多行中分配插入日期的触发器取决于表A中的数据
例如 表A具有以下数据:
Name Start_Date Totals No_Payment Diff_Date
Dave 1/10/17 10000 5 7
要分为表A进行5行的数据取决于No_Payment列,并根据Diff_Date列将7天添加到Start_Date。
谢谢
答案 0 :(得分:0)
不确定您的要求,请重新解释。
declare @t table(Name varchar(50), Start_Date date,Totals int, No_Payment int,Diff_Date int)
insert into @t values ('Dave','1/10/17', 10000 , 5, 7)
create table #num(num int)
insert into #num
select ROW_NUMBER()over(order by number) from master..spt_values
--select * from #num
SELECT *
,NewStartDate
,DATEADD(day, t.Diff_Date, NewStartDate) RequireStartDate
FROM @t t
CROSS APPLY (
SELECT DATEADD(day, num, t.Start_Date) NewStartDate
FROM #num
WHERE num <= t.No_Payment
) c
drop table #num
答案 1 :(得分:0)
这是最简单的解决方案。
declare @t table (Name varchar(10), Start_Date datetime,Totals int,No_Payment int,Diff_Date int)
insert @t
values ('Dave','1/10/17',10000,5,7),
('JOHN','2/10/17',10001,2,5),
('Fotos','3/10/17',10002,3,4),
('Manchi','7/10/17',10003,4,6)
select * from @t;
--Insert into <YOUR TABLE>
select t.Name
, DATEADD(day,t.Diff_Date, t.Start_Date) as Start_Date
,t.Totals
,t.No_Payment
,t.Diff_Date
from @t t
join master..spt_values n
on n.type = 'P'
and n.number < convert(int,No_Payment,1)
它在SQLServer-2014中运行。