以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 问一条SQL语句 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=21525) |
-- 作者:blackzhu -- 发布时间:2012/7/16 8:40:00 -- 问一条SQL语句 有两个表: 一个是明细表 字段有条形码 数量 一个是统计表 字段有条形码 排名 我想在统计表里面输入一个相对应的条形码 排名根据明细表的数量总和进行自动排名 这个SQL语句怎么写?
[此贴子已经被作者于2012-7-16 8:40:07编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2012/7/16 8:52:00 -- 一个条形码,怎么自动排名? |
-- 作者:blackzhu -- 发布时间:2012/7/16 9:26:00 -- 明细表里面是详细的数据 当然有N多条的 商品条码 举个例子: 明细表: 条码 数量 001 50 001 100 001 300 002 50 002 50 002 50 那么我在统计表里面输入: 条码 排名 001 1 002 2 这个排名是根据数量来排名的 |
-- 作者:blackzhu -- 发布时间:2012/7/16 10:10:00 -- 唉,算了还是加了个辅助列解决了. |
-- 作者:飞 -- 发布时间:2012/7/16 10:30:00 -- SELECT 排名 FROM ( SELECT 条形码,ROW_NUMBER() OVER(ORDER BY SUM(数量)) AS 排名 FROM 明细表 GROUP BY 条形码 ) A WHERE 条形码 = \'002\' |
-- 作者:飞 -- 发布时间:2012/7/16 10:30:00 -- --Access及所有SQL版本通用 SELECT COUNT(1) AS 排名 FROM ( SELECT TOP 100 PERCENT 条形码,SUM(数量) AS 合计 FROM 明细表 GROUP BY 条形码 ORDER BY SUM(数量) ) A WHERE A.合计 > = ( SELECT 合计 FROM ( SELECT TOP 100 PERCENT 条形码,SUM(数量) AS 合计 FROM 明细表 GROUP BY 条形码 ORDER BY SUM(数量) ) A WHERE A.条形码 = \'002\' ) |
-- 作者:blackzhu -- 发布时间:2012/7/16 10:59:00 -- 谢谢 飞 为什么是top100 ,不明白了. 我用辅助列解决了.
|
-- 作者:lihe60 -- 发布时间:2012/7/16 11:03:00 -- 飞真是SQL高手。 |