我必须创建一个显示分期付款计划的表格。 我拥有的初始表只显示基本数据,一个合同的记录。 F. e。我们有48个月的学期。 这意味着我必须创建48个记录集,以显示在48个月的生命周期内本金额和更多值的变化情况。
因此,在每个合同的最后,我应该显示n个记录,而n是月数。
我以为我是用第二张表做的,合同号是外键。并根据月数插入详细记录。 通过这种方式,我会创造一对多的关系。
现在的问题是,如何根据每份合约的月份数为每份合约记录创建确切的记录数?
答案 0 :(得分:0)
您应该创建并存储数字表。 EG
create table N(i int primary key)
go
with q as
(
select row_number() over (order by(select null)) i
from sys.objects, sys.columns c,sys.columns c2
)
insert into N(i)
select top 10000 i
from q
go
select c.id, N.i MonthNumber, . . .
from contracts c
join N
on n.i between 1 and c.ContractTerm
答案 1 :(得分:0)
只有48你可以硬编码。
declare @month table (mm tinyint not null primary key)
INSERT INTO @month (mm)
VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10), (11), (12);
declare @contract table (name varchar(10), term tinyint not null)
INSERT INTO @contract (name, term)
VALUES ('four', 4),
('eight', 8);
select c.name, m.mm
from @contract c
join @month m
on m.mm <= c.term
order by c.name, m.mm