从SQL记录创建多个记录并为每个记录分配唯一参数

时间:2014-07-15 00:12:58

标签: sql sql-server-2008

我有一个包含以下字段的数据库

+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中完成这个,所以它不是由我决定的

1 个答案:

答案 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;