Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

求高手!查询出连号发 票

jerry  发表于:2010-05-17 21:24:10  
复制

规则:发 票号码为8位,前几位相同,而尾数在100以内的视为连号发 票举例说明:
姓名          号码
赵一        00001001
赵二        00020001
王一        00001067
王二        00020111
丁三        00020151
丁二        00001111
丁一        00001199
赵一        00001010
赵二        00020159

想通过查询语句得出连号发 票:
姓名          号码
赵一        00001001
赵一        00001010
王一        00001067
丁二        00001111
丁一        00001199
王二        00020111
丁三        00020151
赵二        00020159

前几位相同,尾数为1、10、67、111、199之间相隔不足100属于连号发 票,同理111、151、159也属于连号发 票,只有00020001不属于连号发 票。
如何建立查询语句,能自动计算出连号发 票呢?请教各位高手!
上面只是例表,真正做的时候数据量很多。实际表格附在后面。求能实现的查询语句!点击下载此附件

 

Top
陈福祥 发表于:2010-05-18 19:11:06

首先声明,我不是高手,只是根据自己的思路来试着回答一下你的问题。

按你的要求,以我的水平,用查询是不能实现目的的。

所以,用了代码,另外,用了一个临时表来保存你的连号记录。

但从你的附件中数据来看,里面有很多带字母的或或者带逗号“,”的发票号,这问题分数据我暂时不会处理。

所以,我下面传的示例中,已将带字母或带逗号的数据删掉之后才做的。

此示例仅供参考,如能解决问题,我会很高兴,如不能解决问题,希望继续跟贴,让高手来解决!

 

点击下载此附件

andymark 发表于:2010-05-18 21:16:45

不需要那么复杂

查询搞掂

 

把数据按大小按顺序倒进MDB ,并设一个自动编号(要求不间断的编号)

 

SELECT a.号码
FROM 发票号 AS a INNER JOIN 发票号 AS b ON a.ID=b.ID-1
WHERE (val(b.号码)-val(a.号码)) Between 0 And 100
UNION SELECT b.号码
FROM 发票号 AS a INNER JOIN 发票号 AS b ON a.ID=b.ID-1
WHERE (val(b.号码)-val(a.号码)) between 0  and 100;

 

点击下载此附件

陈福祥 发表于:2010-05-18 21:58:21
总版主的思路,哈哈……,我学习了,果然不同凡响,高!高!高啊!又学了一招

总记录:3篇  页次:1/1 9 1 :