select * from
(
SELECT sum( dbo.inf29a.inf29a13_sold_qty )as qty,
dbo.inf29.inf2903_customer_code,inf29a05_pcode
FROM dbo.inf29a INNER JOIN
dbo.inf29 ON dbo.inf29a.inf29a01_bcode = dbo.inf29.inf2901_bcode AND
dbo.inf29a.inf29a02_docno_type = dbo.inf29.inf2902_docno_type AND
dbo.inf29a.inf29a02_docno_date = dbo.inf29.inf2902_docno_date AND
dbo.inf29a.inf29a02_docno_seq = dbo.inf29.inf2902_docno_seq
WHERE inf2904_pro_date >='2009-01-01' and inf2904_pro_date <='2009-03-01'
group by inf2903_customer_code,inf29a05_pcode
) a where a.inf2903_customer_code<>'' order by inf2903_customer_code,qty desc
-----结果如下--------------
qty inf2903_customer_code inf29a05_pcode
---------------------------------------- --------------------- --------------------
3.000000 01 40101934
3.000000 01 40100067
2.000000 01 40101811
2.000000 01 40100012
2.000000 01 40102429
2.000000 01 40101477
2.000000 01 40101453
1.000000 01 40100340
1.000000 01 40101996
1.000000 01 40100074
1.000000 01 40102245
1.000000 01 40102054
1.000000 01 40502908
1.000000 01 40101484
1.000000 01 40101125
1.000000 02 40101996
1.000000 02 40100814
1.000000 03 40102047
1.000000 03 40102443
1.000000 03 40101996
12.000000 031 40100579
8.000000 031 40501079
2.000000 031 40100111
1.000000 031 40100081
1.000000 031 40100395
1.000000 031 40101996
1.000000 031 40100814
1.000000 031 40103259
1.000000 031 40100807
1.000000 031 11600244
1.000000 031 40102429
-----现在是要取得前10名qty最大的inf2903_customer_code和 inf29a05_pcode ------不知道该如何写语句,请求赐教了
(
SELECT sum( dbo.inf29a.inf29a13_sold_qty )as qty,
dbo.inf29.inf2903_customer_code,inf29a05_pcode
FROM dbo.inf29a INNER JOIN
dbo.inf29 ON dbo.inf29a.inf29a01_bcode = dbo.inf29.inf2901_bcode AND
dbo.inf29a.inf29a02_docno_type = dbo.inf29.inf2902_docno_type AND
dbo.inf29a.inf29a02_docno_date = dbo.inf29.inf2902_docno_date AND
dbo.inf29a.inf29a02_docno_seq = dbo.inf29.inf2902_docno_seq
WHERE inf2904_pro_date >='2009-01-01' and inf2904_pro_date <='2009-03-01'
group by inf2903_customer_code,inf29a05_pcode
) a where a.inf2903_customer_code<>'' order by inf2903_customer_code,qty desc
-----结果如下--------------
qty inf2903_customer_code inf29a05_pcode
---------------------------------------- --------------------- --------------------
3.000000 01 40101934
3.000000 01 40100067
2.000000 01 40101811
2.000000 01 40100012
2.000000 01 40102429
2.000000 01 40101477
2.000000 01 40101453
1.000000 01 40100340
1.000000 01 40101996
1.000000 01 40100074
1.000000 01 40102245
1.000000 01 40102054
1.000000 01 40502908
1.000000 01 40101484
1.000000 01 40101125
1.000000 02 40101996
1.000000 02 40100814
1.000000 03 40102047
1.000000 03 40102443
1.000000 03 40101996
12.000000 031 40100579
8.000000 031 40501079
2.000000 031 40100111
1.000000 031 40100081
1.000000 031 40100395
1.000000 031 40101996
1.000000 031 40100814
1.000000 031 40103259
1.000000 031 40100807
1.000000 031 11600244
1.000000 031 40102429
-----现在是要取得前10名qty最大的inf2903_customer_code和 inf29a05_pcode ------不知道该如何写语句,请求赐教了
解决方案 »
- 关于SQL Server2008里面的外键问题
- 求个SQl语句,可在FOXPRO中使用的
- 请教关于SQL按一表的排序插入另一表
- MYSQL求助,初级问题
- 取部分内容怎么取
- sql server 2000 一条SQL语句在存储过程中和查询分析器执行效率不同
- 模拟器访问数据库 数据访问失败
- 如何用代码调用维护计划中的作业?
- [100]超市前台在与后台数据库断开连接后,自动存放在本地,重新连接后,再上传。如何设计??
- 学习数据库就是学sql语句、视图、存储过程、触发器、游标么,我觉得好象还是没有掌握数据库的精髄,是不是还有什么很重要的内容没学啊。
- SQL update,delete 删除报错
- 请分析这两个语句是怎么样进行的?
(
SELECT sum( dbo.inf29a.inf29a13_sold_qty )as qty,
dbo.inf29.inf2903_customer_code,inf29a05_pcode
FROM dbo.inf29a INNER JOIN
dbo.inf29 ON dbo.inf29a.inf29a01_bcode = dbo.inf29.inf2901_bcode AND
dbo.inf29a.inf29a02_docno_type = dbo.inf29.inf2902_docno_type AND
dbo.inf29a.inf29a02_docno_date = dbo.inf29.inf2902_docno_date AND
dbo.inf29a.inf29a02_docno_seq = dbo.inf29.inf2902_docno_seq
WHERE inf2904_pro_date >='2009-01-01' and inf2904_pro_date <='2009-03-01'
group by inf2903_customer_code,inf29a05_pcode
) a where a.inf2903_customer_code <>'' order by inf2903_customer_code,qty desc \\???
from
(
SELECT sum( dbo.inf29a.inf29a13_sold_qty )as qty,
dbo.inf29.inf2903_customer_code,inf29a05_pcode
FROM dbo.inf29a INNER JOIN
dbo.inf29 ON dbo.inf29a.inf29a01_bcode = dbo.inf29.inf2901_bcode AND
dbo.inf29a.inf29a02_docno_type = dbo.inf29.inf2902_docno_type AND
dbo.inf29a.inf29a02_docno_date = dbo.inf29.inf2902_docno_date AND
dbo.inf29a.inf29a02_docno_seq = dbo.inf29.inf2902_docno_seq
WHERE inf2904_pro_date >='2009-01-01' and inf2904_pro_date <='2009-03-01'
group by inf2903_customer_code,inf29a05_pcode
) a where a.inf2903_customer_code <>'' order by inf2903_customer_code,qty desc 看下行不啊?
select Top 10 inf2903_customer_code, inf29a05_pcode
from
(
SELECT sum( dbo.inf29a.inf29a13_sold_qty )as qty,
dbo.inf29.inf2903_customer_code,inf29a05_pcode
FROM dbo.inf29a INNER JOIN
dbo.inf29 ON dbo.inf29a.inf29a01_bcode = dbo.inf29.inf2901_bcode AND
dbo.inf29a.inf29a02_docno_type = dbo.inf29.inf2902_docno_type AND
dbo.inf29a.inf29a02_docno_date = dbo.inf29.inf2902_docno_date AND
dbo.inf29a.inf29a02_docno_seq = dbo.inf29.inf2902_docno_seq
WHERE inf2904_pro_date >='2009-01-01' and inf2904_pro_date <='2009-03-01'
group by inf2903_customer_code,inf29a05_pcode
) a where a.inf2903_customer_code <>''
order by inf2903_customer_code,qty desc
比如
客户 商品条码 数量
A001 001 100
A001 002 80
A001 003 40
A001 004 20
A001 005 20
A001 006 10
A001 007 10
A001 008 8
A001 009 6
A001 010 5
A002 001 100
A002 002 80
A002 003 40
A002 004 20
A002 005 20
A002 006 10
A002 007 10
A002 008 8
A002 009 6
A002 010 5