促销代码 款号 条形码 原价钱 促销价钱  促销开始日期促销结束日期
061108WSF 82201267 822012670102 139 79 2006-11-9 2007-3-31
061108WSF 82201267 822012670103 139 79 2006-11-9 2007-3-31
061108WSF 82201267 822012670402 139 79 2006-11-9 2007-3-31
061108WSF 82201267 822012670403 139 79 2006-11-9 2007-3-31
061108WSF 82201267 822012670502 139 79 2006-11-9 2007-3-31
061108WSF 82201267 822012670503 139 79 2006-11-9 2007-3-31
061108WSF 82201267 822012670602 139 79 2006-11-9 2007-3-31
061108WSF 82201267 822012670603 139 79 2006-11-9 2007-3-31
061108WSF 82201267 822012671102 139 79 2006-11-9 2007-3-31
061108WSF 82201267 822012671103 139 79 2006-11-9 2007-3-31
061108WSF 82201267 822012671802 139 79 2006-11-9 2007-3-31
061108WSF 82201267 822012671803 139 79 2006-11-9 2007-3-31
070126WSF 82201267 822012670102 139 49 2007-1-26 2007-6-30
070110WSF 82201267 822012670102 139 59 2007-1-10 2007-6-30
070110WSF 82201267 822012670103 139 59 2007-1-10 2007-6-30
070110WSF 82201267 822012670402 139 59 2007-1-10 2007-6-30
070110WSF 82201267 822012670403 139 59 2007-1-10 2007-6-30
070110WSF 82201267 822012670502 139 59 2007-1-10 2007-6-30
070110WSF 82201267 822012670503 139 59 2007-1-10 2007-6-30
070110WSF 82201267 822012670602 139 59 2007-1-10 2007-6-30
070110WSF 82201267 822012670603 139 59 2007-1-10 2007-6-30
070110WSF 82201267 822012671102 139 59 2007-1-10 2007-6-30
070110WSF 82201267 822012671103 139 59 2007-1-10 2007-6-30
070110WSF 82201267 822012671802 139 59 2007-1-10 2007-6-30
070110WSF 82201267 822012671803 139 59 2007-1-10 2007-6-30
070126WSF 82201267 822012670103 139 49 2007-1-26 2007-6-30
070126WSF 82201267 822012670402 139 49 2007-1-26 2007-6-30
070126WSF 82201267 822012670403 139 49 2007-1-26 2007-6-30
070126WSF 82201267 822012670502 139 49 2007-1-26 2007-6-30
070126WSF 82201267 822012670503 139 49 2007-1-26 2007-6-30
070126WSF 82201267 822012670602 139 49 2007-1-26 2007-6-30
070126WSF 82201267 822012670603 139 49 2007-1-26 2007-6-30
070126WSF 82201267 822012671102 139 49 2007-1-26 2007-6-30
070126WSF 82201267 822012671103 139 49 2007-1-26 2007-6-30
070126WSF 82201267 822012671802 139 49 2007-1-26 2007-6-30
070126WSF 82201267 822012671803 139 49 2007-1-26 2007-6-30
070206WSF 82201267 822012670102 139 39 2007-2-6 2007-9-30
070206WSF 82201267 822012670103 139 39 2007-2-6 2007-9-30
070206WSF 82201267 822012670402 139 39 2007-2-6 2007-9-30
070206WSF 82201267 822012670403 139 39 2007-2-6 2007-9-30
070206WSF 82201267 822012670502 139 39 2007-2-6 2007-9-30
070206WSF 82201267 822012670503 139 39 2007-2-6 2007-9-30
070206WSF 82201267 822012670602 139 39 2007-2-6 2007-9-30
070206WSF 82201267 822012670603 139 39 2007-2-6 2007-9-30
070206WSF 82201267 822012671102 139 39 2007-2-6 2007-9-30
070206WSF 82201267 822012671103 139 39 2007-2-6 2007-9-30
070206WSF 82201267 822012671802 139 39 2007-2-6 2007-9-30
070206WSF 82201267 822012671803 139 39 2007-2-6 2007-9-30
070215WSF 82201267 822012670102 139 29 2007-2-15 2007-9-30
070215WSF 82201267 822012670103 139 29 2007-2-15 2007-9-30
070215WSF 82201267 822012670402 139 29 2007-2-15 2007-9-30
070215WSF 82201267 822012670403 139 29 2007-2-15 2007-9-30
070215WSF 82201267 822012670502 139 29 2007-2-15 2007-9-30
070215WSF 82201267 822012670503 139 29 2007-2-15 2007-9-30
070215WSF 82201267 822012670602 139 29 2007-2-15 2007-9-30
070215WSF 82201267 822012670603 139 29 2007-2-15 2007-9-30
070215WSF 82201267 822012671102 139 29 2007-2-15 2007-9-30
070215WSF 82201267 822012671103 139 29 2007-2-15 2007-9-30
070215WSF 82201267 822012671802 139 29 2007-2-15 2007-9-30
070215WSF 82201267 822012671803 139 29 2007-2-15 2007-9-30

请问用SQL怎样实现查询最后促销的价钱
例如上面的数据,我想查找出82201267 这个款号最后促销价钱为29??急

解决方案 »

  1.   

    select * from tb a
    not exists
    (select 1 from tb where 款号 = a.款号 and 促销结束日期<a.促销结束日期)
      

  2.   

    select top 1 促销价格 from Table1 where 款号='82201267' order by 促销结束日期 desc
      

  3.   

    select top 1 * from tb where 款号=82201267 order by 促销结束日期 desc
      

  4.   

    select top 1 促销价格 from Table1 where 款号='82201267' order by 促销结束日期 desc
      

  5.   

    hehe,我的是多余了,楼上一样的
      

  6.   

    select * from tb a where
    款号='82201267'
    and
    not exists
    (select 1 from tb where 款号 = a.款号 and 促销结束日期<a.促销结束日期)
      

  7.   

    大家可能误解意思!首先款号不是特定的!!查询结果是按款号排序!!查询max(促销日期最大)促销价钱
      

  8.   

    select a.款号,b.促销价钱 from (select 款号,max(促销结束日期) 'DT' from Table1 group by 款号) a inner join Table1 b on a.款号=b.款号It's OK!
      

  9.   

    select a.款号,b.促销价钱 from (select 款号,max(促销结束日期) 'DT' from Table1 group by 款号) a inner join Table1 b on a.款号=b.款号 and a.DT=b.促销结束日期呵呵,忘记了日期了
      

  10.   

    兄弟,试过,有点乱,不太行!你有QQ吗?或者MSN我把数据发给你,你帮我调试好了,再发给我!!万分感谢!我的QQ是107303921
      

  11.   

    关键是你决定行的是条形码和款号的组合,乱是可能的
    你数据格式是不是excel?
    不然我不好调试
      

  12.   

    是的!是excel的,如何发给你?
      

  13.   

    select a.code,b.h_price from (select code,max(endtime)'dt' from t1 group by code) a innet join t1 b on a.code=b.code,a.dt=b.endtime我试一下,结果如下82201267 39
    82201267 39
    82201267 39
    82201267 39
    82201267 39
    82201267 39
    82201267 39
    82201267 39
    82201267 39
    82201267 39
    82201267 39
    82201267 39
    82201267 29
    82201267 29
    82201267 29
    82201267 29
    82201267 29
    82201267 29
    82201267 29
    82201267 29
    82201267 29
    82201267 29
    82201267 29
    82201267 29
    但是我想的结果是82201267 29
    麻烦大家给我想想办法源数据我再贴一下
     np_code  code  barcode     y_price h_price begtime  endtime
    061108WSF 82201267 822012670102 139 79 2006-11-9 2007-3-31
    061108WSF 82201267 822012670103 139 79 2006-11-9 2007-3-31
    061108WSF 82201267 822012670402 139 79 2006-11-9 2007-3-31
    061108WSF 82201267 822012670403 139 79 2006-11-9 2007-3-31
    061108WSF 82201267 822012670502 139 79 2006-11-9 2007-3-31
    061108WSF 82201267 822012670503 139 79 2006-11-9 2007-3-31
    061108WSF 82201267 822012670602 139 79 2006-11-9 2007-3-31
    061108WSF 82201267 822012670603 139 79 2006-11-9 2007-3-31
    061108WSF 82201267 822012671102 139 79 2006-11-9 2007-3-31
    061108WSF 82201267 822012671103 139 79 2006-11-9 2007-3-31
    061108WSF 82201267 822012671802 139 79 2006-11-9 2007-3-31
    061108WSF 82201267 822012671803 139 79 2006-11-9 2007-3-31
    070126WSF 82201267 822012670102 139 49 2007-1-26 2007-6-30
    070110WSF 82201267 822012670102 139 59 2007-1-10 2007-6-30
    070110WSF 82201267 822012670103 139 59 2007-1-10 2007-6-30
    070110WSF 82201267 822012670402 139 59 2007-1-10 2007-6-30
    070110WSF 82201267 822012670403 139 59 2007-1-10 2007-6-30
    070110WSF 82201267 822012670502 139 59 2007-1-10 2007-6-30
    070110WSF 82201267 822012670503 139 59 2007-1-10 2007-6-30
    070110WSF 82201267 822012670602 139 59 2007-1-10 2007-6-30
    070110WSF 82201267 822012670603 139 59 2007-1-10 2007-6-30
    070110WSF 82201267 822012671102 139 59 2007-1-10 2007-6-30
    070110WSF 82201267 822012671103 139 59 2007-1-10 2007-6-30
    070110WSF 82201267 822012671802 139 59 2007-1-10 2007-6-30
    070110WSF 82201267 822012671803 139 59 2007-1-10 2007-6-30
    070126WSF 82201267 822012670103 139 49 2007-1-26 2007-6-30
    070126WSF 82201267 822012670402 139 49 2007-1-26 2007-6-30
    070126WSF 82201267 822012670403 139 49 2007-1-26 2007-6-30
    070126WSF 82201267 822012670502 139 49 2007-1-26 2007-6-30
    070126WSF 82201267 822012670503 139 49 2007-1-26 2007-6-30
    070126WSF 82201267 822012670602 139 49 2007-1-26 2007-6-30
    070126WSF 82201267 822012670603 139 49 2007-1-26 2007-6-30
    070126WSF 82201267 822012671102 139 49 2007-1-26 2007-6-30
    070126WSF 82201267 822012671103 139 49 2007-1-26 2007-6-30
    070126WSF 82201267 822012671802 139 49 2007-1-26 2007-6-30
    070126WSF 82201267 822012671803 139 49 2007-1-26 2007-6-30
    070206WSF 82201267 822012670102 139 39 2007-2-6 2007-9-30
    070206WSF 82201267 822012670103 139 39 2007-2-6 2007-9-30
    070206WSF 82201267 822012670402 139 39 2007-2-6 2007-9-30
    070206WSF 82201267 822012670403 139 39 2007-2-6 2007-9-30
    070206WSF 82201267 822012670502 139 39 2007-2-6 2007-9-30
    070206WSF 82201267 822012670503 139 39 2007-2-6 2007-9-30
    070206WSF 82201267 822012670602 139 39 2007-2-6 2007-9-30
    070206WSF 82201267 822012670603 139 39 2007-2-6 2007-9-30
    070206WSF 82201267 822012671102 139 39 2007-2-6 2007-9-30
    070206WSF 82201267 822012671103 139 39 2007-2-6 2007-9-30
    070206WSF 82201267 822012671802 139 39 2007-2-6 2007-9-30
    070206WSF 82201267 822012671803 139 39 2007-2-6 2007-9-30
    070215WSF 82201267 822012670102 139 29 2007-2-15 2007-9-30
    070215WSF 82201267 822012670103 139 29 2007-2-15 2007-9-30
    070215WSF 82201267 822012670402 139 29 2007-2-15 2007-9-30
    070215WSF 82201267 822012670403 139 29 2007-2-15 2007-9-30
    070215WSF 82201267 822012670502 139 29 2007-2-15 2007-9-30
    070215WSF 82201267 822012670503 139 29 2007-2-15 2007-9-30
    070215WSF 82201267 822012670602 139 29 2007-2-15 2007-9-30
    070215WSF 82201267 822012670603 139 29 2007-2-15 2007-9-30
    070215WSF 82201267 822012671102 139 29 2007-2-15 2007-9-30
    070215WSF 82201267 822012671103 139 29 2007-2-15 2007-9-30
    070215WSF 82201267 822012671802 139 29 2007-2-15 2007-9-30
    070215WSF 82201267 822012671803 139 29 2007-2-15 2007-9-30
      

  14.   

    http://community.csdn.net/Expert/topic/5632/5632745.xml?temp=.8130915
    贴子转到这里来,因为上图数据没有空格
      

  15.   

    SELECT L.Code, L.h_price,l.endtime
    FROM test L JOIN test R
    ON L.barcode = R.barcode
    GROUP BY L.Code, L.h_price,l.endtime
    HAVING L.endtime = max(R.endtime)结果
    Code       h_price     endtime                                                
    ---------- ----------- ------------------------------------------------------ 
    82201267   29          2007-09-30 00:00:00.000
    82201267   39          2007-09-30 00:00:00.000(所影响的行数为 2 行)
    相同的原因是因为你这两条数据时间完全一样..
      

  16.   

    SELECT L.Code, L.h_price,l.begtime,l.endtime
    FROM test L JOIN test R
    ON L.barcode = R.barcode
    GROUP BY L.Code, L.h_price,l.begtime,l.endtime
    HAVING L.endtime = max(R.endtime)
    and l.begtime = max(r.begtime)结果
    Code       h_price     begtime                                                endtime                                                
    ---------- ----------- ------------------------------------------------------ ------------------------------------------------------ 
    82201267   29          2007-02-15 00:00:00.000                                2007-09-30 00:00:00.000(所影响的行数为 1 行)
      

  17.   

    昨晚我也搞定了,谢谢大家我的SQL语句
    select np_itcode_it,max(np_sourceprc) as y_price,max(np_stdprc) as h_price ,max(np_enddate) as end_time from arz ,
    (select np_itcode_it as aa ,max(np_begdate) as bb from arz group by np_itcode_it) ab where
    np_begdate =bb and np_itcode_it=aa group by np_itcode_it