roadname,w.outvehclass
) a,[管理点与中心都存在部分_所有.txt] b
where ( (b.CASHMONEY+b.ETCMONEY)<0 ) and a.roadno=b.roadno anda.SQUADDATE=b.SQUADDATE
anda.OUTVEHCLASS=b.OUTVEHCLASSNAME
union
select distinct b.LISTNO,b.roadno
--select count(*) asrec_num,sum(b.CASHMONEY)/100 as CASHMONEY,sum(b.ETCMONEY)/100 as ETCMONEY
from
(
selectw.roadno,w.squaddate,w.roadname,w.outvehclass,
sum(w.rec_count) as rec_count1,sum(w.cashmoney) as cashmoney1,sum(w.etcmoney) as etcmoney1
from
(
select *
FROM [流水大于0.csv]
where (备注 is null) and 回送标志='回送' and(cashmoney+etcmoney)>0
union all
select *
FROM [流水小于0.csv]
where (备注 is null) and 回送标志='回送' and(cashmoney+etcmoney)>0
) w
group byw.roadno,w.squaddate,w.roadname,w.outvehclass
) a,[管理点与中心都存在部分_所有.txt] b
where ( (b.CASHMONEY+b.ETCMONEY)>0 ) and a.roadno=b.roadno anda.SQUADDATE=b.SQUADDATE
anda.OUTVEHCLASS=b.OUTVEHCLASSNAME
union
select distinct b.LISTNO,b.roadno
--select count(*) asrec_num,sum(b.CASHMONEY)/100 as CASHMONEY,sum(b.ETCMONEY)/100 as ETCMONEY
from
(
selectw.roadno,w.squaddate,w.roadname,w.outvehclass,
sum(w.rec_count) as rec_count1,sum(w.cashmoney) as cashmoney1,sum(w.etcmoney) as etcmoney1
from
(
select *
FROM [流水大于0.csv]
where (备注='只管理点存在') and 回送标志='回送' and(cashmoney+etcmoney)<0
union all
select *
FROM [流水小于0.csv]
where (备注='只管理点存在') and 回送标志='回送' and(cashmoney+etcmoney)<0
) w
group byw.roadno,w.squaddate,w.roadname,w.outvehclass
) a,[管理点存在中心不存在的流水_所有.txt] b
where ((b.CASHMONEY+b.ETCMONEY)<0 ) and a.roadno=b.roadno anda.SQUADDATE=b.SQUADDATE
anda.OUTVEHCLASS=b.OUTVEHCLASSNAME
union
select distinct b.LISTNO,b.roadno
--select count(*) asrec_num,sum(b.CASHMONEY)/100 as CASHMONEY,sum(b.ETCMONEY)/100 as ETCMONEY
from
(
selectw.roadno,w.squaddate,w.roadname,w.outvehclass,
sum(w.rec_count) as rec_count1,sum(w.cashmoney) as cashmoney1,sum(w.etcmoney) as etcmoney1
from
(
select *
FROM [流水大于0.csv]
where (备注='只管理点存在') and 回送标志='回送' and(cashmoney+etcmoney)>0
union all
select *
FROM [流水小于0.csv]
where (备注='只管理点存在') and 回送标志='回送' and(cashmoney+etcmoney)>0
) w
group byw.roadno,w.squaddate,w.roadname,w.outvehclass
) a,[管理点存在中心不存在的流水_所有.txt] b
where ((b.CASHMONEY+b.ETCMONEY)>0 ) and a.roadno=b.roadno anda.SQUADDATE=b.SQUADDATE
anda.OUTVEHCLASS=b.OUTVEHCLASSNAME
) www
where roadno in (select roadno from [tb_road.txt] where areano=4407)
图9 一开始执行图8中的SQL语句时,本机CPU使用率立刻攀升至97%
图10 生成中片区需要回传的流水文件,共有6万多条记录
图11 从结算中心数据库中用挖掘生成的所有忽略的流水,两个文件共250多万条记录
结论:
对于“交互式”这种数据处理的方式来说,将结果导出,用《DB 查询分析器》的强大、高效的文本文件的处理功能来分析处理,也是一种不错的选择。并且《DB 查询分析器》的效率非常之高、处理非常方便,可以将源文件当成一个数据库中的数据表一样用标准SQL语句来进行访问。
本人的PC机只不过内存1GB的2005年的DELL 台式PC机,对250万条记录的文件进行关联访问的时候,也只是用不到59秒的时间就生成了一个区域的结果文件,期间CPU使用率高达97% 。
5 本人撰写的关于“万能数据库查询分析器”的64 篇技术文章
目前以下6篇文章发布几个国内计算机刊物上:
[1] 马根峰· DB QueryAnalyzer中断SQL语句的执行 · 杭州:《计算机时代》,2011年第12期
[2] 马根峰· DB查询分析器 批量执行DML语句并返回更详细的信息 · 北京:《电脑编程技巧与维护》,2011年第24期
[3] 马根峰· DBQuery Analyzer中的事务管理在DB2中的应用 · 北京:《电脑编程技巧与维护》,2011年第22期
[4] 马根峰· DB查询分析器中断SQL语句的执行· 天津:《软件》,2011年第6期
[5] 马根峰· 万能数据库查询分析器中的事务管理在Oracle中的应用 · 上海:《微型电脑应用》,2011年第11期
[6] 马根峰 · 新产品&工具点评 特别推荐:“万能数据库查询分析器”发布 · 程序员,2007年2期
以下58篇文章发布在百度文库、CSDN资源、和本人的四大博客上:
《万能数据库查询分析器使用技巧之(一)》直到《万能数据库查询分析器使用技巧之(十三)》共13篇
《The 1st tip ofDB Query Analyze》直到《The 13th skills of DB Query Analyzer》共13篇
《如何在客户端配置ODBC来访问远程DB2 for Windows服务器》
《How to configure ODBC DSN in Client toaccess remote DB2 for W