设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2535|回复: 7
打印 上一主题 下一主题

[查询] 【查询】以日期为条件的求和查询 请教高手

[复制链接]
跳转到指定楼层
1#
发表于 2014-7-5 12:33:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
物料    需求数     需求日期
A           200      2014-9-10
A           100      2014-10-5
B            50       2014-11-8
B            30       2014-10-4
C           100      2014-12-2
现在希望通过查询将物料和日期分组,需求数求和。要求需求数是本行的需求日期之前所有需求的求和。
不太好表达,就是要通过上表的数据查询得到下面的结果:

物料    需求数     需求日期
A           200      2014-9-10
A           300      2014-10-5
B            80       2014-11-8
B            30       2014-10-4
C           100      2014-12-2

请sql高手指点。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2014-7-5 12:35:56 | 只看该作者
累计求和?建议在模块写一个函数,用DSum累加。在查询中调用这个函数。不过这种累计的速度比较慢
3#
 楼主| 发表于 2014-7-5 13:23:11 | 只看该作者
盗梦 发表于 2014-7-5 12:35
累计求和?建议在模块写一个函数,用DSum累加。在查询中调用这个函数。不过这种累计的速度比较慢

在查询中直接用sql没法实现吗?如果无法实现的话,模块中的DSum函数又如何写呢?请指点!
4#
发表于 2014-7-5 15:52:10 | 只看该作者
本帖最后由 cgsilicone 于 2014-7-5 16:50 编辑

用查询可以实现,且效率很高。一个查询就搞定,具体如下:
SELECT 物料, (SELECT SUM(表T.需求数) FROM 表 as 表T where (表T.需求日期<=表.需求日期) and 表T.物料=表.物料 GROUP BY 表T.物料) AS 数量,表.需求日期 FROM 表
5#
 楼主| 发表于 2014-7-15 10:39:42 | 只看该作者
cgsilicone 发表于 2014-7-5 15:52
用查询可以实现,且效率很高。一个查询就搞定,具体如下:
SELECT 物料, (SELECT SUM(表T.需求数) FROM 表 ...

十分感谢大神的回答,还以为不会有人知道了呢。
我把这段套用进了查询,但一直显示语法错误,还请大神继续指教,另外“表T”是什么意思啊,没太明白。
多谢多谢!
6#
发表于 2014-7-15 11:04:07 | 只看该作者
本帖最后由 todaynew 于 2014-7-15 11:09 编辑
davidzzf 发表于 2014-7-15 10:39
十分感谢大神的回答,还以为不会有人知道了呢。
我把这段套用进了查询,但一直显示语法错误,还请大神继 ...

select *,dsum("需求数","阁下的数据表名称","物料='" & 物料 & "' and 需求日期<=#" & 需求日期 & "#") as 累计需求
from 阁下的数据表名称

也可写为:
select a.*,(select sum(需求数) from 阁下的数据表名称 as b where b.物料=a.物料 and b.需求日期<=a.需求日期) as 累计需求
from 阁下的数据表名称 as a

如还不懂,请阅读《趣谈子查询》一文。
7#
 楼主| 发表于 2014-7-15 11:30:01 | 只看该作者
todaynew 发表于 2014-7-15 11:04
select *,dsum("需求数","阁下的数据表名称","物料='" & 物料 & "' and 需求日期

无比感谢大神!
第一种速度太慢,是死机的节奏,第二种稍慢,但完全实现了,十分十分感谢,您帮了我大忙了!

点击这里给我发消息

8#
发表于 2014-7-16 07:53:43 来自手机 | 只看该作者
todaynew 发表于 2014-7-15 11:04
select *,dsum("需求数","阁下的数据表名称","物料='" & 物料 & "' and 需求日期

不错,收藏!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-5 19:32 , Processed in 0.093506 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表