select   TableA.goodsid,TableA.price,TableB.timewritten from TableB,TableA TableB.seqid=TableA.seqid group by TableA.goodsid,TableA.price,TableB.timewritten 可不可以在产生的分组中进行排序和只显示每个小组的第一个记录呢,谢谢,

解决方案 »

  1.   

    不明白楼主的意思,没有用到聚合函数,分组有什么用啊?
    select distinct  TableA.goodsid,TableA.price,TableB.timewritten from TableB,TableA TableB.seqid=TableA.seqid  难道是想要这个结果吗
      

  2.   

    GOODSID PRICE TIMEWRITTEN
    1 40000 5.7000 2006-12-30 17:29:26
    2 40000 5.7000 2007-1-17 8:51:31
    3 40000 5.8000 2007-3-7 13:35:48
    4 40000 5.8500 2006-11-22 8:13:33
    5 39000 0.3300 2006-12-7 14:32:52
    6 39000 0.3300 2007-1-24 12:58:21
    7 39000 0.3300 2007-3-12 19:27:51
    8 39000 0.3300 2007-4-20 7:45:42
    9 39000 0.3300 2007-5-12 8:11:06
    10 39000 0.3300 2007-6-7 7:52:54
    11 39100 1.7000 2007-1-6 8:58:49
    12 39100 1.7000 2007-2-6 17:21:54
    13 39100 1.7000 2007-5-23 17:38:49
      

  3.   

    查询结果如上,我希望在如goodsid=40000的发组中,按TIMEWRITTEN排序,沿后显示此分组的第一条记录
      

  4.   

    如果 GOODSID, PRICE两列一样,楼主想取TIMEWRITTEN 是什么样的,随便一个就可以,还是最大,最小
      

  5.   

    select   TableA.goodsid,TableA.price,max(TableB.timewritten) from TableB,TableA TableB.seqid=TableA.seqid group by TableA.goodsid,TableA.price是这样吗?
      

  6.   

    TableA.price不用管它,要goodsid相同时的max(TableB.timewritten)
      

  7.   

    select   TableA.goodsid,max(TableB.timewritten) from TableB,TableA TableB.seqid=TableA.seqid group by TableA.goodsid
      

  8.   

    近你的做纪结果是这样的:
        GOODSID PRICE MAX(T_BILL_ABSTRACT.TIMEWRITTE
    1 40000 5.7000 2006-12-30 17:29:26
    2 40000 5.7000 2007-1-17 8:51:31
    3 40000 5.8000 2007-3-7 13:35:48
    4 40000 5.8500 2006-11-22 8:13:33
    5 39000 0.3300 2006-12-7 14:32:52
    6 39000 0.3300 2007-1-24 12:58:21
    7 39000 0.3300 2007-3-12 19:27:51
    8 39000 0.3300 2007-4-20 7:45:42
    9 39000 0.3300 2007-5-12 8:11:06
    10 39000 0.3300 2007-6-7 7:52:54
    11 39100 1.7000 2007-1-6 8:58:49我要的结果是这样的
    GOODSID PRICE MAX(T_BILL_ABSTRACT.TIMEWRITTE
    3 40000 5.8000 2007-3-7 13:35:48
    10 39000 0.3300 2007-6-7 7:52:54
    11 39100 1.7000 2007-1-6 8:58:49
      

  9.   

    select   TableA.goodsid,max(PRICE),max(TableB.timewritten) from TableB,TableA TableB.seqid=TableA.seqid group by TableA.goodsid
      

  10.   

    这也不行,执得结果如下:
        GOODSID MAX(T_BILL_GOODS_SERIAL.PRICE) MAX(T_BILL_ABSTRACT.TIMEWRITTE
    1 40000 5.7 2006-12-30 17:29:26
    2 40000 5.7 2007-1-17 8:51:31
    3 40000 5.8 2007-3-7 13:35:48
    4 40000 5.85 2006-11-22 8:13:33
    5 39000 0.33 2006-12-7 14:32:52
    6 39000 0.33 2007-1-24 12:58:21
    7 39000 0.33 2007-3-12 19:27:51
    8 39000 0.33 2007-4-20 7:45:42
    9 39000 0.33 2007-5-12 8:11:06
    10 39000 0.33 2007-6-7 7:52:54
    11 39100 1.7 2007-1-6 8:58:49
    12 39100 1.7 2007-2-6 17:21:54
    13 39100 1.7 2007-5-23 17:38:49
    14 39100 1.75 2007-3-11 15:18:35
    我要的是如下结果:
    GOODSID PRICE price    TIMEWRITTE
    1 40000 5.8000 2007-3-7 13:35:48
    2 39000 0.3300 2007-6-7 7:52:54
    3 39100 1.7 2007-5-23 17:38:49
      

  11.   

    GOODSID PRICE     TIMEWRITTE
    1 40000 5.8000 2007-3-7 13:35:48
    2 39000 0.3300 2007-6-7 7:52:54
    3 39100 1.7 2007-5-23 17:38:49
      

  12.   

    上面那两个有问题,我要的结果如下所示:
             GOODSID PRICE     TIMEWRITTE
    1 40000 5.8000 2007-3-7 13:35:48
    2 39000 0.3300 2007-6-7 7:52:54
    3 39100 1.7 2007-5-23 17:38:49
      

  13.   

    select *
    from 
    (
    select t.*,row_number() over(partition by goodsid order by timewritten desc) rn
    from
    (
    select   TableA.goodsid,TableA.price,TableB.timewritten from TableB,TableA 
    where TableB.seqid=TableA.seqid 
    )t
    )tt
    where tt.rn=1