一表
id bm qshm jshm 
1   1   1   4
2   1   5   8
3   2   1   9bm是编码 
qshm 起始号码
jshm 结束号码
怎样实现一个语句.
能把表中,bm相同,数量相等的号码(也就是(jshm-qshm)+1的数量)显示出来.急!请高手帮忙

解决方案 »

  1.   

    使用内连接即可(以下假设任何一个字段不空).
    内连接的特性在于有相同条件才查询出来.利用这个可以找到多于1条相同的记录.
    select distinct  * from (
    select a.id,a.bm,a.jshm-a.qshm+1 sl from test_sum a,test_sum b
     where b.jshm-b.qshm+1=a.jshm-a.qshm+1 and b.id<>a.id) 
    order by bm以上语句最终结果按照bm来排序.
    如果要查询所有的字段,则外面再套一个查询即可.
      

  2.   

    select a.id,a.bm,b.id,a.jshm-a.qshm+1 
    from tab a,tab b
    where a.bm=b.bm and b.jshm-b.qshm+1=a.jshm-a.qshm+1 and b.id<>a.id