Name Year Sales
张三 2005 20000.00
张三 2006 32000.00
张三 2007 29800.00
李四 2005 30000.00
李四 2006 25000.00
李四 2007 28000.00结果
Name Year Sales      Last_Sales
张三 2005 20000.00   Null
张三 2006 32000.00   20000.00
张三 2007 29800.00   32000.00
李四 2005 30000.00   Null
李四 2006 25000.00   30000.00
李四 2007 28000.00   25000.00不能使用子查询.

解决方案 »

  1.   

    create table #tb(name nvarchar(10),[Year] int,Sales nvarchar(10)) 
    insert into #tb values
    ('张三',2005,20000.00),
    ('张三',2006,32000.00),
    ('张三',2007,29800.00),
    ('李四',2005,30000.00),
    ('李四',2006,25000.00),
    ('李四',2007,28000.00)select t1.name,t1.[Year],t1.Sales,t2.Sales as Last_Sales from #tb t1
    left join #tb t2 on t1.name=t2.name and t1.[Year]=t2.[Year]+1/*
    name Year Sales     Last_Sales
    张三 2005 20000.00 NULL
    张三 2006 32000.00 20000.00
    张三 2007 29800.00 32000.00
    李四 2005 30000.00 NULL
    李四 2006 25000.00 30000.00
    李四 2007 28000.00 25000.00
    */
      

  2.   

    可以用1楼的写法,即自连接。也可以考虑在05以后推出的CTE功能来实现。