日期:2014-05-18  浏览次数:20395 次

如何从表中查询出每个部门每个条码在某个时间段销售额和数量的前三名
表结构如下:
部门   条码   品名   销售额   销售数量   销售日期

要求:先按部门排序,再按销售额、销售数量排序检索出每个部门的商品销售额的前三名

请高手指点,谢谢

------解决方案--------------------
select *
from table1 a
where (select count(1) from table1 where 部门=a.部门 and 销售额> a.销售额)> =3
order by 部门 asc,销售额 desc,销售数量 desc
------解决方案--------------------
销售额
select * from tb where 部门 in (select top 3 部门 from tb order by 销售额 desc) order by 销售额

销售数量
select * from tb where 部门 in (select top 3 部门 from tb order by 销售数量 desc)
order by 销售数量
------解决方案--------------------
-- sql 2005
select *
from(
select *, rid=row_number(partition by 部门,条码 order by 销售额 desc)
from table1
where 条件
) a
where rid <=3