设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[查询] 请问数据分拆查询怎么写

[复制链接]
跳转到指定楼层
1#
发表于 2009-4-8 19:49:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如图和标题所示,提前感谢各位的关注和帮忙

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-4-8 20:38:21 | 只看该作者
你的表设计思路有问题,个人意见
3#
 楼主| 发表于 2009-4-8 20:44:47 | 只看该作者
Luhao,请问您觉得怎样设计会好些呢?
4#
发表于 2009-4-8 21:25:41 | 只看该作者
本帖最后由 todaynew 于 2009-4-8 21:38 编辑





1、查询:
SELECT a.ID, a.姓名, a.配额, (select sum(b.配额) from 表2 as b where b.ID<=a.ID) AS 累计
FROM 表2 AS a;

2、实得数查询:
SELECT a.ID, a.姓名, a.配额, a.累计, iif(累计<=8,累计,iif(dlookup("累计","查询","ID=" & a.id-1)<=8,8-dlookup("累计","查询","ID=" & a.id-1),0)) AS 实得数
FROM 查询 AS a;



说明:
1、由于运用了子查询和Dlookup函数,当记录数量较大时,运用会比较慢。
2、考虑到表1仅有一条记录,所以没有引用表1,而是直接取了一个常数。如果表1有多条记录时,在以上查询的常数处,可采用Dlookup函数引用表1中的相应数据。

3、两个查询也可以合并,只是过于复杂使得可读性较差,因此采用了目前的写法,便于你理解。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
5#
 楼主| 发表于 2009-4-8 21:41:16 | 只看该作者
非常感谢todaynew的大力帮忙,再次感谢
6#
发表于 2009-4-9 11:30:37 | 只看该作者
5# andrewzeng

不必客气,相互学习,共同提高。
7#
发表于 2009-4-9 12:04:00 | 只看该作者
37186

37187

1、查询:
SELECT a.ID, a.姓名, a.配额, (select sum(b.配额) from 表2 as b where b.ID
todaynew 发表于 2009-4-8 21:25

如果把表1的数据改成19,实数得出的是什么====是什么也不变
8#
发表于 2009-4-9 13:41:08 | 只看该作者
本帖最后由 todaynew 于 2009-4-9 14:02 编辑
如果把表1的数据改成19,实数得出的是什么====是什么也不变
luhao 发表于 2009-4-9 12:04

呵呵,这就叫做以不变应万变。

总数可以够分,也可以不够分,问题是想怎么分与分的算法是否正确。

因此,配额与实得数一致的情况不表明算法不正确。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-4 03:11 , Processed in 0.105438 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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