现有一个表,字段如下:
CREATE TABLE [JC_PassStation] (
[RBCode] [varchar] (5) 主键,班次(例如gz001,gz002)
[TSCode] [varchar] (5) 主键,到达站(例如广州,深圳,东莞)
[ArriveOrder] [int] (0),到站顺序(例如,1,2,3,4,7,8)
[Carfare] [money] 
----------------------
我想从这个表中选择班线最后到达的站点(也就是数字ArriveOrder最大的)的记录。
例如表中的记录如下:(其中ArriveOrder不一定是由按顺序逐1递增,有可能是1,2,6;2,5,8;3,9,10),总之就要取最大值。
RBCODE,TSCODE,ArriveOrder
GZ001,市桥,1
GZ001,广州,2
SZ001,太平,1
SZ001,虎门,2
SZ001,樟木头,3
SZ001,惠州,5
XH001,古井,2
XH001,新会,7
-------------
我要选择的是
GZ001,广州,2
SZ001,惠州,5
XH001,新会,7请指教?

解决方案 »

  1.   

    SELECT RBCode, TSCode, MAX(ArriveOrder) AS ArriveOrder
    FROM JC_PassStation
    Group by RBCode, TSCode
      

  2.   

    select RBCODE,TSCODE,MAX(ArriveOrder) from JC_PassStation
    group by RBCODE,TSCODE
      

  3.   

    上面的写法应该不对,
    --建立测试环境
    CREATE TABLE [JC_PassStation] (
    [RBCode] varchar(5),
    [TSCode] varchar(10),
    [ArriveOrder] int,
    [Carfare] money
    )
    insert into JC_PassStation(RBCode,TSCode,ArriveOrder)
    select 'GZ001','市桥',1
    union select
    'GZ001','广州',2
    union select
    'SZ001','太平',1
    union select
    'SZ001','虎门',2
    union select
    'SZ001','樟木头',3
    union select
    'SZ001','惠州',5
    union select
    'XH001','古井',2
    union select
    'XH001','新会',7
    --代码select rbcode,tscode,arriveorder from jc_passstation a where arriveorder=(select max(arriveorder) from jc_passstation where 
    rbcode=a.rbcode)--删除测试环境
    drop table JC_PassStation
      

  4.   

    --返回结果:
    rbcode tscode     arriveorder 
    ------ ---------- ----------- 
    XH001  新会         7
    SZ001  惠州         5
    GZ001  广州         2