Office中国论坛/Access中国论坛

标题: [求助]想查询 [打印本页]

作者: sjds333    时间: 2004-4-16 04:44
标题: [求助]想查询
有一个表如下:
姓名      单位      品名      编号      数量      金额
小李       A           0          001       0          -10
小李       A           0          002       0          -8
小李       A          手套       003       5          12
小李       B          插座       002       8           8
小李       A          钳子       001       4           10
小王……
……
想删除表中姓名、编号相同且正负金额绝对值相等的记录。这个查询我不知怎么着手,请众高手帮助。谢谢!
作者: sjds333    时间: 2004-4-16 04:51
比如表中:小李的2个001和2个002的金额互为正负且绝对值 相等,想要删除的就是这些记录,但如果是有四个001不知能否删除。
作者: sjds333    时间: 2004-4-16 05:04
再补充一点:小王的记录中也有3个编号为005、金额为20和4个编号为005、金额为-20的记录。当然也要删除3个对应的。
作者: sjds333    时间: 2004-4-16 18:31
版主关注啊!
我是用查询把正金额和负金额分成二个表,两表姓名、编号、金额等线连接(一表中负金额*-1使其变正)求得此等值姓名的编号然后手工删除,这是非常笨的办法,所以请高手帮助!盼……
作者: sjds333    时间: 2004-4-16 19:42
我参照高手的有点类似的例子,做了如下查询,因数据量大一时测试不出此方法的对否,且对此处用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));

作者: sjds333    时间: 2004-4-17 02:27
怎么没人支招?我经测试已发现问题就是:
group by [姓名] & [编号] 必须还得加上[品名],但同时得判定品名为0的视同同品名,真难死我了,请高手出招吧!求救!!!
作者: sea.er    时间: 2004-4-17 05:54
你不是说“想删除表中姓名、编号相同且正负金额绝对值相等的记录”吗?
为什么要“加上[品名]”啊
作者: sjds333    时间: 2004-4-18 04:27
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这样的情况可组)然后金额求和。请版主指教,我是否把简单问题复杂化了。谢谢!
作者: sea.er    时间: 2004-4-18 04:57
这说明你的数据有问题,问题就出在那个“0”上
你说“0”算“电”,那肯定也有算“水”的情况,到底算哪个,这个不好判断
如果你说编号相同品名就相同,这显然是不可能的
所以你把“0”的问题解决掉,问题就解决了,该水的就为水,该电的就为电
数据一定要规范,事情才会变得简单
作者: sjds333    时间: 2004-4-18 05:01
谢谢!




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