Office中国论坛/Access中国论坛

标题: 两级排序问题 [打印本页]

作者: Threaten    时间: 2007-9-26 15:56
标题: 两级排序问题
请教各位,有表如下:

部门   分部门   销售金额
A         XY         15678
B         ZY         12400
A         TT         11232
C         OP        10089
B         TX           9879
C         TL           5678

我按销售金额排序,可是出现的是按照各个分部门的销售金额排序的.
如果我想按照整个部门销售金额排序,比如整个A部门的两个分部门的总计是最高的,整个A部门排第一,再按分部门的销售金额由高到低排序,于是整个A部门的两个分部门就分列第一,第二,依此类推...
部门   分部门   销售金额
A         XY         15678
A         TT         11232
B         ZY         12400
B         TX           9879
C         OP        10089
C         TL           5678

请帮忙看一看如何能通过查询完成此操作,谢谢!
作者: wwwwa    时间: 2007-9-26 16:05
SELECT  *
FROM TTPO ORDER BY
部门, 销售金额 DESC
作者: Threaten    时间: 2007-9-26 16:22
那样是先按照部门的字母顺序排序,再按照金额排序
如果B部门的分部门总计是最高的话,就不行了
作者: hi-wzj    时间: 2007-9-26 18:21
例子
作者: wwwwa    时间: 2007-9-27 08:00
不能直接用部门排序,要做处理:

SELECT A1.*
FROM TTPO AS A1 LEFT JOIN [SELECT 部门,
(SELECT COUNT(*) FROM
(SELECT 部门,SUM([销售金额]) AS MA1
FROM TTPO
GROUP BY 部门) A
WHERE MA1>=MA
) AS PX
FROM (
SELECT 部门,SUM([销售金额]) AS MA
FROM TTPO
GROUP BY 部门)
]. AS D ON A1.部门=D.部门
ORDER BY PX, 销售金额 DESC;
作者: wwwwa    时间: 2007-9-27 08:21
ACCESS加了方括号,去掉:
SELECT A1.*
FROM TTPO AS A1 LEFT JOIN (SELECT 部门,
(SELECT COUNT(*) FROM
(SELECT 部门,SUM([销售金额]) AS MA1
FROM TTPO
GROUP BY 部门) A
WHERE MA1>=MA
) AS PX
FROM (
SELECT 部门,SUM([销售金额]) AS MA
FROM TTPO
GROUP BY 部门)
) AS D ON A1.部门=D.部门
ORDER BY PX, 销售金额 DESC;
作者: wanshan    时间: 2007-9-27 10:04
看看这个是否和你的要求类似?
http://www.officefans.net/cdb/vi ... ighlight=%2Bwanshan




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3