我有一个包含以下字段的数据库
+Contract #
+Starting Odometer
对于每条记录,我想跟踪每年指定里程3年的行为。对于实例,假设合同1的驾驶员预计每年行驶15,000英里。然后我想生成以下3条记录:
contract_number starting_odometer year beginning_miles end_miles
1 X 1 X X+15,000
1 X 2 X+15,000 X+30,000
1 X 3 X+30,000 X+45,000
我知道SQL可能不是这个过程中最有效的,但是我的老板希望在SQL中完成这个,所以它不是由我决定的
答案 0 :(得分:0)
你想从数字表开始,然后从那里加入。这是一个例子:
with n as (
select 1 as n
union all
select n + 1
from n
where n < 10
)
select t.contract_number t.starting_odometer, n.n as year,
(t.starting_odometer + (n.n - 1) * 15000) as beginning_miles,
(t.starting_odometer + n.n * 15000) as end_miles
from table t join
n
on n.n <= t.ContractYears;