有一个水产品报价表:
结构如下:(pm:品名,bjdate:报价日期,bjdw:报价单位,averprice:平均价格)
现要求如下:按品名列出表中一周内不同报价单位的最新报价情况。
兄弟们帮帮忙!!!

解决方案 »

  1.   

    SELECT PM,BJDATE,BJDW,AVERPRICE FROM 水产品报价表
    RIGHT JOIN (SELECT DISTINCT PM AS MPM,MAX(BJDATE) AS MBJDATE,BJDW AS MBJDW FROM 水产品报价表 WHERE BJDATE>='2003-4-13' AND BJDATE<='2003-4-19' GROUP BY PM,BJDW) SCPBJB ON SCPBJB.PM=水产品报价表.PM AND SCPBJB.BJDW=水产品报价表.BJDW说明:
    1、首先根据品名及单位分组选出时间段内最新的报价,然后右连接与原表关联取出价格
    2、没有验证以上代码的正确性
    3、以上代码是SQL Server模式,在某些数据库下可能不适用
      

  2.   

    select Top 100 *,TimeToStr(bjDate)+pm as sSign from xTable ordr by sSign group by pm where bjData>='2003-4-8' and bjData<='2003-4-15'
      

  3.   

    哎呀,还是看错了
    ON SCPBJB.PM=水产品报价表.PM AND SCPBJB.BJDW=水产品报价表.BJDW
    应该是
    ON SCPBJB.MPM=水产品报价表.PM AND SCPBJB.MBJDW=水产品报价表.BJDW前面修改了字段名后面居然忘了
      

  4.   

    select distinct bjdw,pm,aveerprice,bjdate from 表 where  datediff(day bjdate,getdate())=7;
      

  5.   

    select distinct bjdw,pm,aveerprice,bjdate from 表 where  datediff(day bjdate,getdate())=7 order by bjdate;
      

  6.   

    select distinct bjdw,pm,bjdate,averprice from table where bjdate bettween 2002-03-01 and 2002-03-07 group by pm;
      

  7.   

    select distinct bjdw,pm,aveerprice,bjdate from 表 where  datediff(day bjdate,getdate())<=7 order by bjdate;
      

  8.   

    用distinct只是排序,而不是最新的一条,你可以用级联查找,不过速度慢一点。
      

  9.   

    我写的:
    sql="select * from lsscpin a,(select pm,bjdw,max(bjdate) date1 from lsscpin where bjdate>getdate()-7 group by pm,bjdw)b where a.pm=b.pm and a.bjdw=b.bjdw and a.bjdate=b.date1"