declare @a table (ID int,NUMBER float,LEVER int,NAME varchar(100),TIME varchar(100))insert @a values(1,1,1,'星期一',null)
insert @a values(2,1.1,2,'语文','上午')
insert @a values(3,1.2,2,'数学','上午')
insert @a values(4,1.3,2,'英语','下午')
insert @a values(5,1.4,2,'政治','下午')
insert @a values(6,2,1,'星期二',null)
insert @a values(7,2.1,2,'化学','上午')
insert @a values(8,2.2,2,'物理','上午')
insert @a values(9,2.3,2,'数学','下午')
insert @a values(10,2.4,2,'语文','下午')select name,number,'上午' 上午,
(select name from @a AA where AA.number=bb.number+0.1) 科目1,
(select name from @a AA where AA.number=bb.number+0.2) 科目2,
'下午' 下午,
(select name from @a AA where AA.number=bb.number+0.3) 科目3,
(select name from @a AA where AA.number=bb.number+0.4) 科目4
from @a bb where lever=1

解决方案 »

  1.   

    declare @a table (ID int,NUMBER decimal(18,3),LEVER int,NAME nvarchar(100),TIME nvarchar(100))insert @a values(1,1,1,'星期一',null)
    insert @a values(2,1.1,2,'语文','上午')
    insert @a values(3,1.2,2,'数学','上午')
    insert @a values(4,1.3,2,'英语','下午')
    insert @a values(5,1.4,2,'政治','下午')
    insert @a values(6,2,1,'星期二',null)
    insert @a values(7,2.1,2,'化学','上午')
    insert @a values(8,2.2,2,'物理','上午')
    insert @a values(9,2.3,2,'数学','下午')
    insert @a values(10,2.4,2,'语文','下午')select  A.name ,A.number,'上午' 上午,B1.name 科目1,B2.name 科目2,'下午' 下午,B3.name 科目3,B4.name 科目4
    from 
    (select name,number,lever from @a where lever=1) A,
    (select number,name from @a where [time]=N'上午' and number-cast(number as int)=0.1 ) B1,
    (select number,name from @a where [time]=N'上午' and number-cast(number as int)=0.2 ) B2,
    (select number,name from @a where [time]=N'下午' and number-cast(number as int)=0.3 ) B3,
    (select number,name from @a where [time]=N'下午' and number-cast(number as int)=0.4 ) B4
    where  A.number =B1.number-0.1 and   A.number =B2.number-0.2
    and   A.number =B3.number-0.3 and   A.number =B4.number-0.4