Access交流中心

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

如何滚加

qixiang  发表于:2010-12-29 19:20:32  
复制

在查询1的相同产品号里,如何将不同的半成品号根据层次的顺序一层一层滚加

比如:

表里的产品号121-100831对应的半成品有121-100831SP,层次是:2

                                                          121-100832CO,层次是:1

                                                          121-100831,     层次是:0

现在要将成本列按照层次数从2滚加给1,那就是74.169337加36.5085777,在1的滚加列里就是等于110.6779147

                      再从1滚加给0,那就是110.6779147加47.4852927,在0对应的滚加列里等于158.1632074

其他产品也一样的滚加,要如何在查询1里做到?

请看附件

点击下载此附件

请老师指点!

谢谢!!!

 

Top
煮江品茶 发表于:2010-12-29 19:53:14
用子查询或者Dsum解决之。

qixiang 发表于:2010-12-29 20:13:04

老师:能下载我的数据库在我的库里的查询1里做个示范吗?

谢谢您!!!



煮江品茶 发表于:2010-12-29 20:15:29
 明天吧,想看会电视了。

qixiang 发表于:2010-12-29 20:39:01

好吧,我明天等你结果!谢谢!!!



煮江品茶 发表于:2010-12-30 09:02:02

可如下:

ELECT 产品号, 半成品号, 层次, 成本, DSum("成本","表1","产品号='" & [产品号] & "' and 层次>=" & [层次]) AS 滚加
FROM 表1
ORDER BY 产品号, 层次 DESC;

或者:

ELECT a.产品号, a.半成品号, a.层次, a.成本, (select Sum(b.成本) from 表1 as b where b.产品号=a.产品号 and b.层次>=a.层次) AS 滚加
FROM 表1 as a
ORDER BY a.产品号, a.层次 DESC;



qixiang 发表于:2010-12-30 10:53:56

老师您好!

首先谢谢你的高技术指导,单还有个问题,按照您的第一个方法,我的数据库表1里还有一个产品MF000238对应的半成品号110436BS和031060AS,它们的层次都是1,1是这产品的最低层次,按照您第一个的方法,2个层次1的成本都相加,是不对的,最低层应该是原本的成本,而不应该相加。麻烦您帮我改改!    
谢谢您!

请看按你第一方法的附件    



煮江品茶 发表于:2010-12-30 10:56:11
无以言表就不表了,呵呵。

qixiang 发表于:2010-12-30 11:03:36

老师您好!

不还意思!传不上去,请看看附件数据库,是按你的方法做的,看MF000238产品,谢谢!!!

 

点击下载此附件

煮江品茶 发表于:2010-12-30 11:08:46

qixiang同学:

如果需要这样处理,说明你的表结构有毛病。比如说在第1层有两条记录其产品号一致,在第2层有7条记录其产品号全部与第1层的一致。那么第2层的7条记录应该如何分别汇总到第1层的记录中呢?形象的说就是7个孩子两个爹,从你的表中无法判断谁是孩子的爹了。



煮江品茶 发表于:2010-12-30 12:15:53
呵呵,一切尽在不言中。

qixiang 发表于:2010-12-30 12:52:21

老师您好!

其实它有3个产品号,半成品号才是层次的关键

   产品号       半成品号     层次   成本        滚加

121-100831    121-100831SP     2  74.169337    74.169337

121-100831    121-100831CO     1  36.5085777   110.6779147

121-100831    121-100831       0  47.4852927   158.1632074

 

MF000238      110436BS         1  22.528128     56.8597721

MF000238      031060AS         1  34.3316441    56.8597721

MF000238      MF000238         0  13.23774      70.0975121

 

MF030052      MF030052         0  33.34548678   33.34548678

 

请老师看看

谢谢!!! 

 

 

 



qixiang 发表于:2010-12-30 12:53:10
红色数字有问题

煮江品茶 发表于:2010-12-30 13:01:01

呵呵,你还是没明白。

假设

MF000238      22222222         2  8.23774     

MF000238      110436BS         1  22.528128    

MF000238      031060AS         1  34.3316441

MF000238      MF000238         0  13.23774

那么

MF000238      22222222         2  8.23774  这条记录向第1层的哪条记录汇总呢?



qixiang 发表于:2010-12-31 08:47:14

煮江品茶老师您好!

您帮我解决了三分之二的问题,还有另外的三分之一我自己解决了,非常感谢您!!!



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