declare @t table(sCardID int,  cEffect int)
insert @t select 1,             1000
insert @t select 2,             100
insert @t select 3,             500
insert @t select 4,             200
insert @t select 5,             200
....................................
求cEffect和等于500的所有情况对应的sCardID

解决方案 »

  1.   

    星星的问题?全部代码如下,测试通过use tempdb
    godeclare @t table(sCardID int,  cEffect int) 
    declare @i int
    set @i = 1
    while (@i <= 1000)
    begin
        insert into @t select @i,@i
        set @i = @i + 1
    endselect a.*,b.* from
    ( select sCardID,cEffect from @t where cEffect < 500 ) a inner join  
    ( select sCardID,cEffect from @t where cEffect < 500 ) b 
    on a.cEffect = 500 - b.cEffect --(所影响的行数为 499 行)
      

  2.   

    应该这样的use tempdb
    godeclare @t table(sCardID int,  cEffect int) 
    declare @i int
    set @i = 1
    while (@i <= 1000)
    begin
        insert into @t select @i,@i
        set @i = @i + 1
    endselect a.*,b.* from
    ( select sCardID,cEffect from @t where cEffect < 250 ) a inner join  
    ( select sCardID,cEffect from @t where cEffect <= 250 ) b 
    on a.cEffect = 500 - b.cEffect 
      

  3.   


    你的结果貌似不符合我的要求
    declare @t table(sCardID int,  cEffect int) 
    insert @t select 1,            1000 
    insert @t select 2,            100 
    insert @t select 3,            500 
    insert @t select 4,            200 
    insert @t select 5,            200 
    insert @t select 6,            300 
    sCardID =3是一种情况
    sCardID =2,4,5 是种情况
    sCardID =4,5
    sCardID =4,6
    ........