Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

用ACCESS制作柏拉图

消失的天河  发表于:2013-01-08 15:19:31  
复制

A表:

字段1    字段2    字段3

 A          AA         2

 A          BB          1

A           CC         3

B           DD         5

B           AA         1


我要查询出如下结果:

字段1    字段2    字段3    字段4    字段5    字段6

 A         CC          3          3          6         3/6

 A         AA         2           5         6          5/6

 A         BB         1           6          6          6/6


其中字段4、字段5可以不要。

字段4的组成为字段3加上上一行的字段4,第一行不加,如上查询结果为3(字段4)=3(字段3),下一行为5(字段4)=2(字段3)+3(字段4),再下一行为6(字段4)=1(字段3)+5(字段4)。

或者另一个思路,字段4为字段3从开始行到当前行的总和,如3(字段4)=3(字段3),5(字段4)=3(字段3)+2(字段3),6(字段4)=3(字段3)+2(字段3)+1(字段3)。

字段5为查询得到的所有字段3的总和,字段6为字段4/字段5。


不知道有没有办法用SQL实现此查询?

回版主的话:

输出结果是按字段1的A进行筛选,然后按字段3进行逆序排列,再进行字段4、5、6的累计。

 

Top
dbaseIIIer 发表于:2013-01-10 06:14:03

当然可以!


但是你上面都没有说  A表 用什么排序  来输出你这些累计数!


“上一行” 或者  “前面累计的总和” 都需要知道你怎么 排序的!

按自然输入排序的话,就要你有个ID字段(自动跳号)的。



煮江品茶 发表于:2013-01-11 10:31:32
select *,(字段3+Dmax("字段3","A表","字段1='" & 字段 & "' and 字段3<" & 字段3))/Dsum("字段3","A表","字段1='" & 字段 & "'") as 逆序累计权重 from A表

总记录:2篇  页次:1/1 9 1 :