--不知道對不隊的..create table t1(aid char(01),a int)
insert into t1 select '1', 40
insert into t1 select '2',40
insert into t1 select '3',35
insert into t1 select '4',17create table t2(bid char(01),b int)
insert into t2 select '1',44
insert into t2 select '2',29
insert into t2 select '3',20create table t3(cid char(01),c int)
insert into t3 select '1',11
insert into t3 select '2',9
insert into t3 select '3',8create table t4 (did char(01),d int)
insert into t4 select '1',16create table t5 (eid char(01),e int)
insert into t5 select '1',15/**/
select 'a'+aid+',b'+bid+',c'+cid as new_group,a+b+c as total from (select * from t1 full join t2 on 1=1 full join t3 on 1=1) T where a+b+c>40 and a+b+c<90   union all
select 'a'+aid+',b'+bid+',d'+did,a=b+d from (select * from t1 full join t2 on 1=1 full join t4 on 1=1) T where a+b+d>40 and a+b+d<90   union all
select 'a'+aid+',b'+bid+',e'+eid,a+b+e from (select * from t1 full join t2 on 1=1 full join t5 on 1=1) T where a+b+e>40 and a+b+e<90   union all
select 'a'+aid+',c'+cid+',d'+did,a+c+d from (select * from t1 full join t3 on 1=1 full join t4 on 1=1) T where a+c+d>40 and a+c+d<90  union all
select 'a'+aid+',c'+cid+',e'+eid,a+c+e  from (select * from t1 full join t3 on 1=1 full join t5 on 1=1) T where a+c+e>40 and a+c+e<90   union all
select 'a'+aid+',d'+did+',e'+eid ,a+d+e from (select * from t1 full join t4 on 1=1 full join t5 on 1=1) T where a+d+e>40 and a+d+e<90  union all
select 'b'+bid+',c'+cid+',d'+did, b+c+d from (select * from t2 full join t3 on 1=1 full join t4 on 1=1) T where b+c+d>40 and b+c+d<90  union all
select 'b'+bid+',c'+cid+',e'+eid , b+c+e from (select * from t2 full join t3 on 1=1 full join t5 on 1=1) T where b+c+e>40 and b+c+e<90   union all
select 'b'+bid+',d'+did+',e'+eid ,b+d+e from (select * from t2 full join t4 on 1=1 full join t5 on 1=1) T where b+d+e>40 and b+d+e<90  union all
select 'c'+cid+',d'+did+',e'+eid  ,c+d+e from (select * from t3 full join t4 on 1=1 full join t5 on 1=1) T where c+d+e>40 and c+d+e<90
order by new_groupdrop table t1
drop table t2
drop table t3
drop table t4
drop table t5/*結果是96種排列組合*/

解决方案 »

  1.   

    new_group total       
    --------- ----------- 
    a1,b2,c1  80
    a1,b2,c2  78
    a1,b2,c3  77
    a1,b2,d1  45
    a1,b2,e1  84
    a1,b3,c1  71
    a1,b3,c2  69
    a1,b3,c3  68
    a1,b3,d1  36
    a1,b3,e1  75
    a1,c1,d1  67
    a1,c1,e1  66
    a1,c2,d1  65
    a1,c2,e1  64
    a1,c3,d1  64
    a1,c3,e1  63
    a1,d1,e1  71
    a2,b2,c1  80
    a2,b2,c2  78
    a2,b2,c3  77
    a2,b2,d1  45
    a2,b2,e1  84
    a2,b3,c1  71
    a2,b3,c2  69
    a2,b3,c3  68
    a2,b3,d1  36
    a2,b3,e1  75
    a2,c1,d1  67
    a2,c1,e1  66
    a2,c2,d1  65
    a2,c2,e1  64
    a2,c3,d1  64
    a2,c3,e1  63
    a2,d1,e1  71
    a3,b1,c2  88
    a3,b1,c3  87
    a3,b2,c1  75
    a3,b2,c2  73
    a3,b2,c3  72
    a3,b2,d1  45
    a3,b2,e1  79
    a3,b3,c1  66
    a3,b3,c2  64
    a3,b3,c3  63
    a3,b3,d1  36
    a3,b3,e1  70
    a3,c1,d1  62
    a3,c1,e1  61
    a3,c2,d1  60
    a3,c2,e1  59
    a3,c3,d1  59
    a3,c3,e1  58
    a3,d1,e1  66
    a4,b1,c1  72
    a4,b1,c2  70
    a4,b1,c3  69
    a4,b1,d1  60
    a4,b1,e1  76
    a4,b2,c1  57
    a4,b2,c2  55
    a4,b2,c3  54
    a4,b2,d1  45
    a4,b2,e1  61
    a4,b3,c1  48
    a4,b3,c2  46
    a4,b3,c3  45
    a4,b3,d1  36
    a4,b3,e1  52
    a4,c1,d1  44
    a4,c1,e1  43
    a4,c2,d1  42
    a4,c2,e1  41
    a4,c3,d1  41
    a4,d1,e1  48
    b1,c1,d1  71
    b1,c1,e1  70
    b1,c2,d1  69
    b1,c2,e1  68
    b1,c3,d1  68
    b1,c3,e1  67
    b1,d1,e1  75
    b2,c1,d1  56
    b2,c1,e1  55
    b2,c2,d1  54
    b2,c2,e1  53
    b2,c3,d1  53
    b2,c3,e1  52
    b2,d1,e1  60
    b3,c1,d1  47
    b3,c1,e1  46
    b3,c2,d1  45
    b3,c2,e1  44
    b3,c3,d1  44
    b3,c3,e1  43
    b3,d1,e1  51
    c1,d1,e1  42(96 row(s) affected)
      

  2.   

    一個筆誤: '='改成'+'select 'a'+aid+',b'+bid+',d'+did,a=b+d from (select * from t1 full join t2 on 1=1 full join t4 on 1=1) T where a+b+d>40 and a+b+d<90   union all
    ------------------------------------------------------------------------
    select 'a'+aid+',b'+bid+',d'+did,a+b+d from (select * from t1 full join t2 on 1=1 full join t4 on 1=1) T where a+b+d>40 and a+b+d<90   union allnew_group total       
    --------- ----------- 
    a1,b2,c1  80
    a1,b2,c2  78
    a1,b2,c3  77
    a1,b2,d1  85
    a1,b2,e1  84
    a1,b3,c1  71
    a1,b3,c2  69
    a1,b3,c3  68
    a1,b3,d1  76
    a1,b3,e1  75
    a1,c1,d1  67
    a1,c1,e1  66
    a1,c2,d1  65
    a1,c2,e1  64
    a1,c3,d1  64
    a1,c3,e1  63
    a1,d1,e1  71
    a2,b2,c1  80
    a2,b2,c2  78
    a2,b2,c3  77
    a2,b2,d1  85
    a2,b2,e1  84
    a2,b3,c1  71
    a2,b3,c2  69
    a2,b3,c3  68
    a2,b3,d1  76
    a2,b3,e1  75
    a2,c1,d1  67
    a2,c1,e1  66
    a2,c2,d1  65
    a2,c2,e1  64
    a2,c3,d1  64
    a2,c3,e1  63
    a2,d1,e1  71
    a3,b1,c2  88
    a3,b1,c3  87
    a3,b2,c1  75
    a3,b2,c2  73
    a3,b2,c3  72
    a3,b2,d1  80
    a3,b2,e1  79
    a3,b3,c1  66
    a3,b3,c2  64
    a3,b3,c3  63
    a3,b3,d1  71
    a3,b3,e1  70
    a3,c1,d1  62
    a3,c1,e1  61
    a3,c2,d1  60
    a3,c2,e1  59
    a3,c3,d1  59
    a3,c3,e1  58
    a3,d1,e1  66
    a4,b1,c1  72
    a4,b1,c2  70
    a4,b1,c3  69
    a4,b1,d1  77
    a4,b1,e1  76
    a4,b2,c1  57
    a4,b2,c2  55
    a4,b2,c3  54
    a4,b2,d1  62
    a4,b2,e1  61
    a4,b3,c1  48
    a4,b3,c2  46
    a4,b3,c3  45
    a4,b3,d1  53
    a4,b3,e1  52
    a4,c1,d1  44
    a4,c1,e1  43
    a4,c2,d1  42
    a4,c2,e1  41
    a4,c3,d1  41
    a4,d1,e1  48
    b1,c1,d1  71
    b1,c1,e1  70
    b1,c2,d1  69
    b1,c2,e1  68
    b1,c3,d1  68
    b1,c3,e1  67
    b1,d1,e1  75
    b2,c1,d1  56
    b2,c1,e1  55
    b2,c2,d1  54
    b2,c2,e1  53
    b2,c3,d1  53
    b2,c3,e1  52
    b2,d1,e1  60
    b3,c1,d1  47
    b3,c1,e1  46
    b3,c2,d1  45
    b3,c2,e1  44
    b3,c3,d1  44
    b3,c3,e1  43
    b3,d1,e1  51
    c1,d1,e1  42(96 row(s) affected)
      

  3.   

    最后形成这样的矩阵!
    B1 A4 C2  70人
    A1 D1 E1  71人
    A2 B3 C1  71人
    A3 B2 C3  72人
      

  4.   

    declare @t table (
    组 varchar(20),
    人数 int,
    队 varchar(20)
    )
    insert @t select
    'A1',40,'A'
    union all select
    'A2',40,'A'
    union all select
    'A3',35,'A'
    union all select
    'A4',17,'A'
    union all select
    'B1',44,'B'
    union all select
    'B2',29,'B'
    union all select
    'B3',20,'B'
    union all select
    'C1',11,'C'
    union all select
    'C2',9,'C'
    union all select
    'C3',8,'C'
    union all select
    'D1',16,'D'
    union all select
    'E1',15,'E'declare @tt table (
    a varchar(20),
    b varchar(20),
    c varchar(20),
    人数 int
    )insert @tt
    select a.组,b.组,c.组,a.人数+b.人数+c.人数 as 人数
    from @t a,@t b,@t c
    where a.队<b.队
    and b.队<c.队
    and a.人数+b.人数+c.人数 between 41 and 89select * from @tt
    order by a,b,cselect * from @tt a,@tt b,@tt c,@tt d
    where a.a<b.a
    and b.a<c.a
    and c.a<d.a
    and a.b<>b.a
    and a.b<>b.b
    and a.b<>b.c
    and a.b<>c.a
    and a.b<>c.b
    and a.b<>c.c
    and a.b<>d.a
    and a.b<>d.b
    and a.b<>d.c
    and a.c<>b.a
    and a.c<>b.b
    and a.c<>b.c
    and a.c<>c.a
    and a.c<>c.b
    and a.c<>c.c
    and a.c<>d.a
    and a.c<>d.b
    and a.c<>d.c
    and b.b<>c.a
    and b.b<>c.b
    and b.b<>c.c
    and b.b<>d.a
    and b.b<>d.b
    and b.b<>d.c
    and b.c<>c.a
    and b.c<>c.b
    and b.c<>c.c
    and b.c<>d.a
    and b.c<>d.b
    and b.c<>d.c
    and c.b<>d.a
    and c.b<>d.b
    and c.b<>d.c
    and c.c<>d.a
    and c.c<>d.b
    and c.c<>d.c
    --368个组合
      

  5.   

    select 'A'+aid,'B'+bid,'C'+cid ,a+b+c  from (select * from t1 full join t2 on 1=1 full join t3 on 1=1) T where a+b+c>40 and a+b+c<90   union all
    select 'A'+aid,'B'+bid,'D'+did,a+b+d from (select * from t1 full join t2 on 1=1 full join t4 on 1=1) T where a+b+d>40 and a+b+d<90   union all
    select 'A'+aid,'B'+bid,'E'+eid,a+b+e from (select * from t1 full join t2 on 1=1 full join t5 on 1=1) T where a+b+e>40 and a+b+e<90   union all
    select 'A'+aid,'C'+cid,'D'+did,a+c+d from (select * from t1 full join t3 on 1=1 full join t4 on 1=1) T where a+c+d>40 and a+c+d<90  union all
    select 'A'+aid,'C'+cid,'E'+eid,a+c+e  from (select * from t1 full join t3 on 1=1 full join t5 on 1=1) T where a+c+e>40 and a+c+e<90   union all
    select 'A'+aid,'D'+did,'E'+eid ,a+d+e from (select * from t1 full join t4 on 1=1 full join t5 on 1=1) T where a+d+e>40 and a+d+e<90  union all
    select 'B'+bid,'C'+cid,'D'+did, b+c+d from (select * from t2 full join t3 on 1=1 full join t4 on 1=1) T where b+c+d>40 and b+c+d<90  union all
    select 'B'+bid,'C'+cid,'E'+eid , b+c+e from (select * from t2 full join t3 on 1=1 full join t5 on 1=1) T where b+c+e>40 and b+c+e<90   union all
    select 'B'+bid,'D'+did,'E'+eid ,b+d+e from (select * from t2 full join t4 on 1=1 full join t5 on 1=1) T where b+d+e>40 and b+d+e<90  union all
    select 'C'+cid,'D'+did, 'E'+eid  ,c+d+e from (select * from t3 full join t4 on 1=1 full join t5 on 1=1) T where c+d+e>40 and c+d+e<90
    A4   B1   C1   72
    A1   B2   C1   80
    A2   B2   C1   80
    A3   B2   C1   75
    A4   B2   C1   57
    A1   B3   C1   71
    A2   B3   C1   71
    A3   B3   C1   66
    A4   B3   C1   48
    A3   B1   C2   88
    A4   B1   C2   70
    A1   B2   C2   78
    A2   B2   C2   78
    A3   B2   C2   73
    A4   B2   C2   55
    A1   B3   C2   69
    A2   B3   C2   69
    A3   B3   C2   64
    A4   B3   C2   46
    A3   B1   C3   87
    A4   B1   C3   69
    A1   B2   C3   77
    A2   B2   C3   77
    A3   B2   C3   72
    A4   B2   C3   54
    A1   B3   C3   68
    A2   B3   C3   68
    A3   B3   C3   63
    A4   B3   C3   45
    A4   B1   D1   77
    A1   B2   D1   85
    A2   B2   D1   85
    A3   B2   D1   80
    A4   B2   D1   62
    A1   B3   D1   76
    A2   B3   D1   76
    A3   B3   D1   71
    A4   B3   D1   53
    A4   B1   E1   76
    A1   B2   E1   84
    A2   B2   E1   84
    A3   B2   E1   79
    A4   B2   E1   61
    A1   B3   E1   75
    A2   B3   E1   75
    A3   B3   E1   70
    A4   B3   E1   52
    A1   C1   D1   67
    A2   C1   D1   67
    A3   C1   D1   62
    A4   C1   D1   44
    A1   C2   D1   65
    A2   C2   D1   65
    A3   C2   D1   60
    A4   C2   D1   42
    A1   C3   D1   64
    A2   C3   D1   64
    A3   C3   D1   59
    A4   C3   D1   41
    A1   C1   E1   66
    A2   C1   E1   66
    A3   C1   E1   61
    A4   C1   E1   43
    A1   C2   E1   64
    A2   C2   E1   64
    A3   C2   E1   59
    A4   C2   E1   41
    A1   C3   E1   63
    A2   C3   E1   63
    A3   C3   E1   58
    A1   D1   E1   71
    A2   D1   E1   71
    A3   D1   E1   66
    A4   D1   E1   48
    B1   C1   D1   71
    B1   C2   D1   69
    B1   C3   D1   68
    B2   C1   D1   56
    B2   C2   D1   54
    B2   C3   D1   53
    B3   C1   D1   47
    B3   C2   D1   45
    B3   C3   D1   44
    B1   C1   E1   70
    B1   C2   E1   68
    B1   C3   E1   67
    B2   C1   E1   55
    B2   C2   E1   53
    B2   C3   E1   52
    B3   C1   E1   46
    B3   C2   E1   44
    B3   C3   E1   43
    B1   D1   E1   75
    B2   D1   E1   60
    B3   D1   E1   51
    C1   D1   E1   42
      

  6.   

    改格式:declare @t table (
    组 varchar(20),
    人数 int,
    队 varchar(20)
    )
    insert @t select
    'A1',40,'A'
    union all select
    'A2',40,'A'
    union all select
    'A3',35,'A'
    union all select
    'A4',17,'A'
    union all select
    'B1',44,'B'
    union all select
    'B2',29,'B'
    union all select
    'B3',20,'B'
    union all select
    'C1',11,'C'
    union all select
    'C2',9,'C'
    union all select
    'C3',8,'C'
    union all select
    'D1',16,'D'
    union all select
    'E1',15,'E'declare @tt table (
    a varchar(20),
    b varchar(20),
    c varchar(20),
    人数 int
    )insert @tt
    select a.组,b.组,c.组,a.人数+b.人数+c.人数 as 人数
    from @t a,@t b,@t c
    where a.队<b.队
    and b.队<c.队
    and a.人数+b.人数+c.人数 between 41 and 89
    select a.a+char(9)+a.b+char(9)+a.c+char(9)+cast(a.人数 as varchar)+'人'+char(10)+
    b.a+char(9)+b.b+char(9)+b.c+char(9)+cast(b.人数 as varchar)+'人'+char(10)+
    c.a+char(9)+c.b+char(9)+c.c+char(9)+cast(c.人数 as varchar)+'人'+char(10)+
    d.a+char(9)+d.b+char(9)+d.c+char(9)+cast(d.人数 as varchar)+'人'+char(10)
    from @tt a,@tt b,@tt c,@tt d
    where a.a<b.a
    and b.a<c.a
    and c.a<d.a
    and a.b<>b.a
    and a.b<>b.b
    and a.b<>b.c
    and a.b<>c.a
    and a.b<>c.b
    and a.b<>c.c
    and a.b<>d.a
    and a.b<>d.b
    and a.b<>d.c
    and a.c<>b.a
    and a.c<>b.b
    and a.c<>b.c
    and a.c<>c.a
    and a.c<>c.b
    and a.c<>c.c
    and a.c<>d.a
    and a.c<>d.b
    and a.c<>d.c
    and b.b<>c.a
    and b.b<>c.b
    and b.b<>c.c
    and b.b<>d.a
    and b.b<>d.b
    and b.b<>d.c
    and b.c<>c.a
    and b.c<>c.b
    and b.c<>c.c
    and b.c<>d.a
    and b.c<>d.b
    and b.c<>d.c
    and c.b<>d.a
    and c.b<>d.b
    and c.b<>d.c
    and c.c<>d.a
    and c.c<>d.b
    and c.c<>d.c
      

  7.   

    --结果(部分)
    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    A1 B2 C1 80人
    A2 D1 E1 71人
    A3 B3 C3 63人
    A4 B1 C2 70人A1 B2 C1 80人
    A2 C3 E1 63人
    A3 B3 D1 71人
    A4 B1 C2 70人A1 B2 C1 80人
    A2 C3 D1 64人
    A3 B3 E1 70人
    A4 B1 C2 70人A1 B2 C1 80人
    A2 B3 E1 75人
    A3 C3 D1 59人
    A4 B1 C2 70人A1 B2 C1 80人
    A2 B3 D1 76人
    A3 C3 E1 58人
    A4 B1 C2 70人A1 B2 C1 80人
    A2 B3 C3 68人
    A3 D1 E1 66人
    A4 B1 C2 70人A1 B2 C1 80人
    A2 D1 E1 71人
    A3 B3 C2 64人
    A4 B1 C3 69人A1 B2 C1 80人
    A2 C2 E1 64人
    A3 B3 D1 71人
    A4 B1 C3 69人A1 B2 C1 80人
    A2 C2 D1 65人
    A3 B3 E1 70人
    A4 B1 C3 69人A1 B2 C1 80人
    A2 B3 E1 75人
    A3 C2 D1 60人
    A4 B1 C3 69人A1 B2 C1 80人
    A2 B3 D1 76人
    A3 C2 E1 59人
    A4 B1 C3 69人A1 B2 C1 80人
    A2 B3 C2 69人
    A3 D1 E1 66人
    A4 B1 C3 69人A1 B2 C1 80人
    A2 C3 E1 63人
    A3 B3 C2 64人
    A4 B1 D1 77人A1 B2 C1 80人
    A2 C2 E1 64人
    A3 B3 C3 63人
    A4 B1 D1 77人A1 B2 C1 80人
    A2 B3 C3 68人
    A3 C2 E1 59人
    A4 B1 D1 77人A1 B2 C1 80人
    A2 B3 C2 69人
    A3 C3 E1 58人
    A4 B1 D1 77人A1 B2 C1 80人
    A2 C3 D1 64人
    A3 B3 C2 64人
    A4 B1 E1 76人A1 B2 C1 80人
    A2 C2 D1 65人
    A3 B3 C3 63人
    A4 B1 E1 76人A1 B2 C1 80人
    A2 B3 C3 68人
    A3 C2 D1 60人
    A4 B1 E1 76人A1 B2 C1 80人
    A2 B3 C2 69人
    A3 C3 D1 59人
    A4 B1 E1 76人A1 B2 C1 80人
    A2 D1 E1 71人
    A3 B1 C3 87人
    A4 B3 C2 46人A1 B2 C1 80人
    A2 D1 E1 71人
    A3 B1 C2 88人
    A4 B3 C3 45人A1 B2 C1 80人
    A2 C3 E1 63人
    A3 B1 C2 88人
    A4 B3 D1 53人A1 B2 C1 80人
    A2 C2 E1 64人
    A3 B1 C3 87人
    A4 B3 D1 53人A1 B2 C1 80人
    A2 C3 D1 64人
    A3 B1 C2 88人
    A4 B3 E1 52人A1 B2 C1 80人
    A2 C2 D1 65人
    A3 B1 C3 87人
    A4 B3 E1 52人A1 B2 C1 80人
    A2 B3 E1 75人
    A3 B1 C3 87人
    A4 C2 D1 42人A1 B2 C1 80人
    A2 B3 D1 76人
    A3 B1 C3 87人
    A4 C2 E1 41人A1 B2 C1 80人
    A2 B3 E1 75人
    A3 B1 C2 88人
    A4 C3 D1 41人A1 B2 C1 80人
    A2 B3 C3 68人
    A3 B1 C2 88人
    A4 D1 E1 48人A1 B2 C1 80人
    A2 B3 C2 69人
    A3 B1 C3 87人
    A4 D1 E1 48人A1 B2 C2 78人
    A2 D1 E1 71人
    A3 B3 C3 63人
    A4 B1 C1 72人A1 B2 C2 78人
    A2 C3 E1 63人
    A3 B3 D1 71人
    A4 B1 C1 72人A1 B2 C2 78人
    A2 C3 D1 64人
    A3 B3 E1 70人
    A4 B1 C1 72人A1 B2 C2 78人
    A2 B3 E1 75人
    A3 C3 D1 59人
    A4 B1 C1 72人A1 B2 C2 78人
    A2 B3 D1 76人
    A3 C3 E1 58人
    A4 B1 C1 72人A1 B2 C2 78人
    A2 B3 C3 68人
    A3 D1 E1 66人
    A4 B1 C1 72人A1 B2 C2 78人
    A2 D1 E1 71人
    A3 B3 C1 66人
    A4 B1 C3 69人A1 B2 C2 78人
    A2 C1 E1 66人
    A3 B3 D1 71人
    A4 B1 C3 69人A1 B2 C2 78人
    A2 C1 D1 67人
    A3 B3 E1 70人
    A4 B1 C3 69人A1 B2 C2 78人
    A2 B3 E1 75人
    A3 C1 D1 62人
    A4 B1 C3 69人A1 B2 C2 78人
    A2 B3 D1 76人
    A3 C1 E1 61人
    A4 B1 C3 69人A1 B2 C2 78人
    A2 B3 C1 71人
    A3 D1 E1 66人
    A4 B1 C3 69人A1 B2 C2 78人
    A2 C3 E1 63人
    A3 B3 C1 66人
    A4 B1 D1 77人A1 B2 C2 78人
    A2 C1 E1 66人
    A3 B3 C3 63人
    A4 B1 D1 77人A1 B2 C2 78人
    A2 B3 C3 68人
    A3 C1 E1 61人
    A4 B1 D1 77人A1 B2 C2 78人
    A2 B3 C1 71人
    A3 C3 E1 58人
    A4 B1 D1 77人A1 B2 C2 78人
    A2 C3 D1 64人
    A3 B3 C1 66人
    A4 B1 E1 76人A1 B2 C2 78人
    A2 C1 D1 67人
    A3 B3 C3 63人
    A4 B1 E1 76人A1 B2 C2 78人
    A2 B3 C3 68人
    A3 C1 D1 62人
    A4 B1 E1 76人A1 B2 C2 78人
    A2 B3 C1 71人
    A3 C3 D1 59人
    A4 B1 E1 76人A1 B2 C2 78人
    A2 D1 E1 71人
    A3 B1 C3 87人
    A4 B3 C1 48人A1 B2 C2 78人
    A2 C1 E1 66人
    A3 B1 C3 87人
    A4 B3 D1 53人A1 B2 C2 78人
    A2 C1 D1 67人
    A3 B1 C3 87人
    A4 B3 E1 52人A1 B2 C2 78人
    A2 B3 E1 75人
    A3 B1 C3 87人
    A4 C1 D1 44人A1 B2 C2 78人
    A2 B3 D1 76人
    A3 B1 C3 87人
    A4 C1 E1 43人A1 B2 C2 78人
    A2 B3 C1 71人
    A3 B1 C3 87人
    A4 D1 E1 48人A1 B2 C3 77人
    A2 D1 E1 71人
    A3 B3 C2 64人
    A4 B1 C1 72人A1 B2 C3 77人
    A2 C2 E1 64人
    A3 B3 D1 71人
    A4 B1 C1 72人A1 B2 C3 77人
    A2 C2 D1 65人
    A3 B3 E1 70人
    A4 B1 C1 72人A1 B2 C3 77人
    A2 B3 E1 75人
    A3 C2 D1 60人
    A4 B1 C1 72人A1 B2 C3 77人
    A2 B3 D1 76人
    A3 C2 E1 59人
    A4 B1 C1 72人A1 B2 C3 77人
    A2 B3 C2 69人
    A3 D1 E1 66人
    A4 B1 C1 72人A1 B2 C3 77人
    A2 D1 E1 71人
    A3 B3 C1 66人
    A4 B1 C2 70人A1 B2 C3 77人
    A2 C1 E1 66人
    A3 B3 D1 71人
    A4 B1 C2 70人A1 B2 C3 77人
    A2 C1 D1 67人
    A3 B3 E1 70人
    A4 B1 C2 70人A1 B2 C3 77人
    A2 B3 E1 75人
    A3 C1 D1 62人
    A4 B1 C2 70人A1 B2 C3 77人
    A2 B3 D1 76人
    A3 C1 E1 61人
    A4 B1 C2 70人A1 B2 C3 77人
    A2 B3 C1 71人
    A3 D1 E1 66人
    A4 B1 C2 70人A1 B2 C3 77人
    A2 C2 E1 64人
    A3 B3 C1 66人
    A4 B1 D1 77人A1 B2 C3 77人
    A2 C1 E1 66人
    A3 B3 C2 64人
    A4 B1 D1 77人A1 B2 C3 77人
    A2 B3 C2 69人
    A3 C1 E1 61人
    A4 B1 D1 77人A1 B2 C3 77人
    A2 B3 C1 71人
    A3 C2 E1 59人
    A4 B1 D1 77人A1 B2 C3 77人
    A2 C2 D1 65人
    A3 B3 C1 66人
    A4 B1 E1 76人A1 B2 C3 77人
    A2 C1 D1 67人
    A3 B3 C2 64人
    A4 B1 E1 76人A1 B2 C3 77人
    A2 B3 C2 69人
    A3 C1 D1 62人
    A4 B1 E1 76人A1 B2 C3 77人
    A2 B3 C1 71人
    A3 C2 D1 60人
    A4 B1 E1 76人A1 B2 C3 77人
    A2 D1 E1 71人
    A3 B1 C2 88人
    A4 B3 C1 48人A1 B2 C3 77人
    A2 C1 E1 66人
    A3 B1 C2 88人
    A4 B3 D1 53人A1 B2 C3 77人
    A2 C1 D1 67人
    A3 B1 C2 88人
    A4 B3 E1 52人A1 B2 C3 77人
    A2 B3 E1 75人
    A3 B1 C2 88人
    A4 C1 D1 44人A1 B2 C3 77人
    A2 B3 D1 76人
    A3 B1 C2 88人
    A4 C1 E1 43人A1 B2 C3 77人
    A2 B3 C1 71人
    A3 B1 C2 88人
    A4 D1 E1 48人A1 B2 D1 85人
    A2 C3 E1 63人
    A3 B3 C2 64人
    A4 B1 C1 72人A1 B2 D1 85人
    A2 C2 E1 64人
    A3 B3 C3 63人
    A4 B1 C1 72人A1 B2 D1 85人
    A2 B3 C3 68人
    A3 C2 E1 59人
    A4 B1 C1 72人A1 B2 D1 85人
    A2 B3 C2 69人
    A3 C3 E1 58人
    A4 B1 C1 72人A1 B2 D1 85人
    A2 C3 E1 63人
    A3 B3 C1 66人
    A4 B1 C2 70人A1 B2 D1 85人
    A2 C1 E1 66人
    A3 B3 C3 63人
    A4 B1 C2 70人A1 B2 D1 85人
    A2 B3 C3 68人
    A3 C1 E1 61人
    A4 B1 C2 70人A1 B2 D1 85人
    A2 B3 C1 71人
    A3 C3 E1 58人
    A4 B1 C2 70人A1 B2 D1 85人
    A2 C2 E1 64人
    A3 B3 C1 66人
    A4 B1 C3 69人A1 B2 D1 85人
    A2 C1 E1 66人
    A3 B3 C2 64人
    A4 B1 C3 69人A1 B2 D1 85人
    A2 B3 C2 69人
    A3 C1 E1 61人
    A4 B1 C3 69人A1 B2 D1 85人
    A2 B3 C1 71人
    A3 C2 E1 59人
    A4 B1 C3 69人A1 B2 D1 85人
    A2 C3 E1 63人
    A3 B1 C2 88人
    A4 B3 C1 48人
      

  8.   

    你看你列出的結果,好像
    A1 B2 D1 85人
    有好多條..
      

  9.   

    是的,一个大组不能重复,如A1 B2  D1 这个只能出现一次!
      

  10.   

    你第一次算出来的数据有没有办法GROUP BY 一下,估计就准确了
      

  11.   

    不会重复的,每个空行分个一组数据,楼主要求的组合看清楚楼主的要求呵呵,对合要求的数据按人数均等排了下序(觉得排序了数据好玩点)declare @t table (
    组 varchar(20),
    人数 int,
    队 varchar(20)
    )
    insert @t select
    'A1',40,'A'
    union all select
    'A2',40,'A'
    union all select
    'A3',35,'A'
    union all select
    'A4',17,'A'
    union all select
    'B1',44,'B'
    union all select
    'B2',29,'B'
    union all select
    'B3',20,'B'
    union all select
    'C1',11,'C'
    union all select
    'C2',9,'C'
    union all select
    'C3',8,'C'
    union all select
    'D1',16,'D'
    union all select
    'E1',15,'E'declare @tt table (
    a varchar(20),
    b varchar(20),
    c varchar(20),
    人数 int
    )insert @tt
    select a.组,b.组,c.组,a.人数+b.人数+c.人数 as 人数
    from @t a,@t b,@t c
    where a.队<b.队
    and b.队<c.队
    and a.人数+b.人数+c.人数 between 41 and 89
    select a.a+char(9)+a.b+char(9)+a.c+char(9)+cast(a.人数 as varchar)+'人'+char(10)+
    b.a+char(9)+b.b+char(9)+b.c+char(9)+cast(b.人数 as varchar)+'人'+char(10)+
    c.a+char(9)+c.b+char(9)+c.c+char(9)+cast(c.人数 as varchar)+'人'+char(10)+
    d.a+char(9)+d.b+char(9)+d.c+char(9)+cast(d.人数 as varchar)+'人'+char(10)
    from @tt a,@tt b,@tt c,@tt d
    where a.a<b.a
    and b.a<c.a
    and c.a<d.a
    and a.b<>b.a
    and a.b<>b.b
    and a.b<>b.c
    and a.b<>c.a
    and a.b<>c.b
    and a.b<>c.c
    and a.b<>d.a
    and a.b<>d.b
    and a.b<>d.c
    and a.c<>b.a
    and a.c<>b.b
    and a.c<>b.c
    and a.c<>c.a
    and a.c<>c.b
    and a.c<>c.c
    and a.c<>d.a
    and a.c<>d.b
    and a.c<>d.c
    and b.b<>c.a
    and b.b<>c.b
    and b.b<>c.c
    and b.b<>d.a
    and b.b<>d.b
    and b.b<>d.c
    and b.c<>c.a
    and b.c<>c.b
    and b.c<>c.c
    and b.c<>d.a
    and b.c<>d.b
    and b.c<>d.c
    and c.b<>d.a
    and c.b<>d.b
    and c.b<>d.c
    and c.c<>d.a
    and c.c<>d.b
    and c.c<>d.c
    order by case when a.人数>b.人数 then 
                 case when a.人数>c.人数 then
                      case when a.人数>d.人数 then a.人数
                      else d.人数
                      end
                 else          
                      case when c.人数>d.人数 then c.人数
                      else d.人数
                      end
                 end
              else
                 case when b.人数>c.人数 then
                      case when b.人数>d.人数 then b.人数
                      else d.人数
                      end
                 else          
                      case when c.人数>d.人数 then c.人数
                      else d.人数
                      end
                 end
             end-
             case when a.人数<b.人数 then 
                 case when a.人数<c.人数 then
                      case when a.人数<d.人数 then a.人数
                      else d.人数
                      end
                 else          
                      case when c.人数<d.人数 then c.人数
                      else d.人数
                      end
                 end
              else
                 case when b.人数<c.人数 then
                      case when b.人数<d.人数 then b.人数
                      else d.人数
                      end
                 else          
                      case when c.人数<d.人数 then c.人数
                      else d.人数
                      end
                 end
             end