数据库有两列:期号,号码。
我想查找某条记录,查找的号码=该记录的号码,查找的记过还显示该记录与表的最后一条记录有多远的!
如:查询条件为: 号码=777,
   查询结果为:期号   号码    未出期数
             2010338  777        145不知道最后这一列该怎么写查询语句,求指教!

解决方案 »

  1.   

    从你的描述也就是一个select + where条件,谁知到你的表结构是怎样的
      

  2.   


    select 期号,号码,未出期号=(select count(期号) from 表 where 期号 > (select 期号 from 表 where 号码='777'))
    from 表 where 号码='777'
      

  3.   

    LS的,你好,按照你的方法可以,但是有新的问题,
    当查询的结果有多个的时候,显示
    “子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。”
    是哪里出了问题的呢?
      

  4.   

    表结构:
    LOTISSUE VARCHAR(8) NOT NULL PRIMARY KEY
    LOTCODE  VARCHAR(4)
    我想在查找某期中奖号码 LOTCODE返回LOTISSUE,LOTCODE,NOCOUNT(这个是用来表示这个号码多少期未出),如果查询的结果只有一个,3L的办法可以解决了,如果查询的结果有多个,就不行了!
    我想要的是有多个的结果。
      

  5.   

    select 期号,号码,未出期号=(select count(期号) from 表 where 期号 > (select 期号 from 表 where 号码=a.号码))
    from 表 a
      

  6.   

    如果要加条件,括号里的where和最后面要加一样的,如
    select 期号,号码,未出期号=(select count(期号) from 表 where 期号 > (select 期号 from 表 where 号码=a.号码 and 号码='777’))
    from 表 a where 号码='777’另外,号码必须保证是唯一的,否则还是会出你刚才说的那个错误,或者,如果有相同的,而你计算最后的差数不是那么严谨,也可以select 期号,号码,未出期号=(select count(期号) from 表 where 期号 > (select distinct 期号 from 表 where 号码=a.号码))
    from 表 a