设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[查询] [求助]想查询

[复制链接]
跳转到指定楼层
1#
发表于 2004-4-16 04:44:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有一个表如下:
姓名      单位      品名      编号      数量      金额
小李       A           0          001       0          -10
小李       A           0          002       0          -8
小李       A          手套       003       5          12
小李       B          插座       002       8           8
小李       A          钳子       001       4           10
小王……
……
想删除表中姓名、编号相同且正负金额绝对值相等的记录。这个查询我不知怎么着手,请众高手帮助。谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2004-4-16 04:51:00 | 只看该作者
比如表中:小李的2个001和2个002的金额互为正负且绝对值 相等,想要删除的就是这些记录,但如果是有四个001不知能否删除。
3#
 楼主| 发表于 2004-4-16 05:04:00 | 只看该作者
再补充一点:小王的记录中也有3个编号为005、金额为20和4个编号为005、金额为-20的记录。当然也要删除3个对应的。
4#
 楼主| 发表于 2004-4-16 18:31:00 | 只看该作者
版主关注啊!
我是用查询把正金额和负金额分成二个表,两表姓名、编号、金额等线连接(一表中负金额*-1使其变正)求得此等值姓名的编号然后手工删除,这是非常笨的办法,所以请高手帮助!盼……
5#
 楼主| 发表于 2004-4-16 19:42:00 | 只看该作者
我参照高手的有点类似的例子,做了如下查询,因数据量大一时测试不出此方法的对否,且对此处用last或first的区别模糊请高手就这两个问题指点。谢谢!
SELECT Last(表1.姓名) AS 姓名, Last(表1.单位) AS 单位, Last(表1.品名) AS 品名, Last(表1.编号) AS 编号, Last(表1.数量) AS 数量, Sum(表1.金额) AS 金额
FROM 表1
GROUP BY [业务员] & [票号]
HAVING (((Sum(表1.金额))<>0));
6#
 楼主| 发表于 2004-4-17 02:27:00 | 只看该作者
怎么没人支招?我经测试已发现问题就是:
group by [姓名] & [编号] 必须还得加上[品名],但同时得判定品名为0的视同同品名,真难死我了,请高手出招吧!求救!!!
7#
发表于 2004-4-17 05:54:00 | 只看该作者
你不是说“想删除表中姓名、编号相同且正负金额绝对值相等的记录”吗?
为什么要“加上[品名]”啊
8#
 楼主| 发表于 2004-4-18 04:27:00 | 只看该作者
ser.er版主您好:我的原意是如此,可我自己摸索着用5楼的查询HAVING (((Sum(表1.金额))=0));  做后测试发现在表中此类记录并不多,更多的是:HAVING (((Sum(表1.金额))<>0));

姓名      单位      品名      编号      数量      金额
小李      A          0          04         0           -8
小李      A          水         05         5           9
小李      B          电         05         6           10
小李      B          电         04         8           12
……
即:记录1和记录4是可以合并的,也就是说记录1的品名为0视同为记录4的电,而记录2和记录3因没有加上“按品名分类”一合并就出现了品名的混乱。所以现在的关键就是同时按姓名、品名、票号分组,(同时判定记录1和记录4这样的情况可组)然后金额求和。请版主指教,我是否把简单问题复杂化了。谢谢!
9#
发表于 2004-4-18 04:57:00 | 只看该作者
这说明你的数据有问题,问题就出在那个“0”上
你说“0”算“电”,那肯定也有算“水”的情况,到底算哪个,这个不好判断
如果你说编号相同品名就相同,这显然是不可能的
所以你把“0”的问题解决掉,问题就解决了,该水的就为水,该电的就为电
数据一定要规范,事情才会变得简单
10#
 楼主| 发表于 2004-4-18 05:01:00 | 只看该作者
谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-15 09:54 , Processed in 0.097589 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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