在制作一个货物销量排名报表时,我用一名SQL语句联合查询出了货物ID及对应的销售总量:
SQL.text:='select 货物ID,sum(销量) as 销量 from 销售表 group by 货物ID order by sum(销量) desc'
现在我想在查询结果中加一个名次字段,显示排名,请教各位这句SQL该如何写

解决方案 »

  1.   

    SQL.text:='select '+ quotedstr('排名值') + ' as 排名,货物ID,sum(销量) as 销量 from 销售表 group by 货物ID order by sum(销量) desc'
    这样会显示排名字段,而且值全部是“排名值”
      

  2.   

    没感觉很难,一个相关子查询就能搞定,可能是大家都写累了吧!
    我帮你写一个!
    保留名次:
    Select *,
          Rank=(select count(distinct(销量)) from table1 where 销量>=A.销量)
    From table1 A
    不保留名次:
    select *,
          rank=(select count(1) from table1 where 销量>A.销量)+1
    from table1 A
      

  3.   

    谢谢笑青天和绿色落叶,我主要是对以上语法不懂,查了一下SQL中文参考手册,搜索rank,竟找不到一条,在网上查找后,才知是某数据库服务器特有的东西,可我用的是access呀,再请二位老师指教。