Office中国论坛/Access中国论坛

标题: 如何使下一级自动向上一级汇总数据?谢谢 [打印本页]

作者: qjw9004    时间: 2011-10-25 23:08
标题: 如何使下一级自动向上一级汇总数据?谢谢
如:
将自动将代码01XX自动加计到01
id        flbh        flxz        ysje        jc        bz
58        01        火法冶炼系统        ¥0.00        1       
60        0101        精矿调浆间        ¥0.00        2
       
64        0101001        土建        ¥2,376,000.00        3       
65        0101002        工艺设备及安装        ¥1,250,828.00        3       
67        0101003        结构件及管道、阀门、管件        ¥96,000.00        3       
79        02        湿法冶炼系统        ¥0.00        1       
80        0201        酸浸氰化系列        ¥0.00        2
       
81        0201001        土建        ¥17,000,000.00        3       
87        0201002        酸浸设备        ¥4,256,066.00        3       
88        0201003        氰化提金设备        ¥4,568,599.00        3       
89        0201004        锌粉置换设备        ¥706,381.00        3       
90        0201005        金精炼设备        ¥1,429,680.00        3       

标红色的记录如何自动计算~~~
在此先谢谢各位了~~[attach]47084[/attach]       
作者: williamwangc    时间: 2011-10-26 07:55
加个两列,然后用交叉查询不就可以了么?一个是系统,一个是大项目。
作者: qjw9004    时间: 2011-10-26 12:36
能否帮做个附,对交叉查询不什么了解,谢谢!~
作者: todaynew    时间: 2011-10-27 09:18


http://www.office-cn.net/forum.p ... 8%B5%D8%B7%D6%D4%DF
作者: qjw9004    时间: 2011-10-27 13:01
todaynew 发表于 2011-10-27 09:18
http://www.office-cn.net/forum.php?mod=viewthread&tid=97830&highlight=%D7%F8%B5%D8%B7%D6%D4%DF

你好!~~你做有太复杂了,我只是刚入门。
能否作个简单的呢?
作者: todaynew    时间: 2011-10-27 17:08
qjw9004 发表于 2011-10-27 13:01
你好!~~你做有太复杂了,我只是刚入门。
能否作个简单的呢?


作者: qjw9004    时间: 2011-10-27 18:04
别笑了
为这个已经纳闷好些天了~!
作者: todaynew    时间: 2011-10-27 19:22
本帖最后由 todaynew 于 2011-10-27 21:01 编辑
qjw9004 发表于 2011-10-27 18:04
别笑了
为这个已经纳闷好些天了~!


SELECT ht_flxz.*, IIf(nz([ysje],0)<>0,[ysje],DSum("ysje","ht_flxz","flbh like '" & [flbh] & "*' and len(flbh)=7")) AS Sumysje
FROM ht_flxz
ORDER BY ht_flxz.flbh;



[attach]47110[/attach]
作者: qjw9004    时间: 2011-10-27 21:28
todaynew 发表于 2011-10-27 19:22
SELECT ht_flxz.*, IIf(nz([ysje],0)0,[ysje],DSum("ysje","ht_flxz","flbh like '" & [flbh] & "*' an ...

谢谢你!~~~
但有个问题让我纳闷了!
我用ASP网页代码读取表时,提示这样的错误~
Microsoft OLE DB Provider for ODBC Drivers '80040e14'
[Microsoft][ODBC Microsoft Access Driver] 表达式中 'nz' 函数未定义。
\htxt\xxx.asp, line 8

ASP网页代码为
<%
   dim conn   
   dim connstr
   connstr="DBQ="+server.mappath("../data.mdb")+";DefaultDir=;DRIVER={Driver do Microsoft Access (*.mdb)};"
     set conn=server.createobject("ADODB.CONNECTION")
     conn.open connstr
  set rs=server.createobject("adodb.recordset")
  rs.open "select * from ht_flxz_aa",conn,1,3
  Do Until rs.EOF
     Response.Write rs("flxz")&"<br/>"
     rs.MoveNext
  Loop
  response.write rs
  rs.close
  conn.close
  set rs=nothing
  set con=nothing
%>
是什么原因呢?
作者: todaynew    时间: 2011-10-28 08:33
qjw9004 发表于 2011-10-27 21:28
谢谢你!~~~
但有个问题让我纳闷了!
我用ASP网页代码读取表时,提示这样的错误~

网页我没玩过,呵呵。
作者: qjw9004    时间: 2011-10-28 12:47
本帖最后由 qjw9004 于 2011-10-28 12:48 编辑
todaynew 发表于 2011-10-27 19:22
SELECT ht_flxz.*, IIf(nz([ysje],0)0,[ysje],DSum("ysje","ht_flxz","flbh like '" & [flbh] & "*' an ...


你好~~~
我查了很多资料才有点明白,ASP不支持NZ这个函数我想能否用isnull来代替呢?

我用isnull来替代,代码如下
SELECT ht_flxz.*, IIf(isnull([ysje]),[ysje],DSum("ysje","ht_flxz","flbh like '" & [flbh] & "*' and len(flbh)=7")) AS Sumysje
FROM ht_flxz
ORDER BY ht_flxz.flbh;

但是存在一点问题
如是二级没有下一级的话就计算不出来,结果如图~~
[attach]47117[/attach]

切望再次得到你的帮助!~~~
作者: todaynew    时间: 2011-10-28 12:54
本帖最后由 todaynew 于 2011-10-28 12:55 编辑

SELECT ht_flxz.*, IIf(([ysje] is null) or ([ysje]=0),DSum("ysje","ht_flxz","flbh like '" & [flbh] & "*' and len(flbh)=7"),[ysje]) AS Sumysje
FROM ht_flxz
ORDER BY ht_flxz.flbh;

作者: qjw9004    时间: 2011-10-28 13:29
非常感谢!
作者: qjw9004    时间: 2011-10-28 13:31
todaynew 发表于 2011-10-28 12:54
SELECT ht_flxz.*, IIf(([ysje] is null) or ([ysje]=0),DSum("ysje","ht_flxz","flbh like '" & [flbh] &  ...

有你的帮助非常荣幸!~~再次表示感谢!
作者: todaynew    时间: 2011-10-28 14:46
qjw9004 发表于 2011-10-28 13:31
有你的帮助非常荣幸!~~再次表示感谢!

不必客气,举手之劳而已。
作者: qjw9004    时间: 2011-10-29 11:14
todaynew 发表于 2011-10-28 14:46
不必客气,举手之劳而已。

你好!~~今天发现有一个致命的错误。如二级没有下一级就出现错误,能否帮帮一下呢?谢谢!
如:03不能将0301,0302,0303,0304加计汇!
错误截图
[attach]47128[/attach]
作者: todaynew    时间: 2011-10-29 11:38
qjw9004 发表于 2011-10-29 11:14
你好!~~今天发现有一个致命的错误。如二级没有下一级就出现错误,能否帮帮一下呢?谢谢!
如:03不能将 ...

呵呵,不要尾部的len([flbh])=7这个条件就可以了。不过需要在输入时确定一个规则,凡是有下一级数据的,本级都保持为0或者null。如果不按照这个规则的话,数据都统计重复了。
SELECT ht_flxz.*, IIf(([ysje] is null) or ([ysje]=0),DSum("ysje","ht_flxz","flbh like '" & [flbh] & "*'"),[ysje]) AS Sumysje
FROM ht_flxz
ORDER BY ht_flxz.flbh;





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