一张表里,有119条记录,为销售数量,会有相同数字.现想通过查询,查出27条记录值相加等于1000的.这27条记录可能有很多种组合.需要各种组合,请高手指点怎么写这个查询语句

解决方案 »

  1.   

    穷举法:select  
        *
    from
        tabname a01,tabname a02,...,tabname a26,tabname a27
    where
        (a01.销售数量+...+a27.销售数量)=100
        and
        a01.id<a02.id and a02.id<a03.id and ... and a25.id<a26.id and a26.id<a27.id
      

  2.   

    select t1.num ,t2.num ,t3.num ,t4.num ,t5.num ......t27.num
    from tablename t1,tablename  t2,tablename  t3,tablename  t4,tablename  t5......tablename t27
    where (t1.num+t2.num+....t27.num)=1000 and 
    t1.num<>t2.num and  t1.num<>t3.num and  t1.num<>t4.num and  t1.num<>t5.num and ......t1.num<>t27.num and
    t2.num<>t3.num and  t2.num<>t4.num and  t2.num<>t5.num......t2.num<>t27.num
    and  t3.num<>t4.num  and  t3.num<>t5.num ......t3.num<>t27.num
    ....
    t26.num<>t27.num应该可以理解吧,希望能解决