设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 3724|回复: 13
打印 上一主题 下一主题

[其它] 呜呜,求救30万条数据怎么办?????

[复制链接]
跳转到指定楼层
1#
发表于 2003-11-13 05:36:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我们单位员工的投保记录有30万条左右吧,投保所属日期都是连续的,怎样把漏报的挑出来呀,我编的程序没法用,机器一运行就好像死机[em03][em03]

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2003-11-13 17:06:00 | 只看该作者
对于大容量数据的操作 关注ing....

不过你的范例下载啦,不明白 要干啥??怎么才算是漏报的哦??
3#
 楼主| 发表于 2003-11-13 17:12:00 | 只看该作者
宏达表中有一所属日期字段,字段中的数据应该是连续的,如果不连续说明漏报
4#
发表于 2003-11-13 17:42:00 | 只看该作者
呵呵,我试一下
好像速度也很慢
数据量太大

先去上课啦,回来再写
5#
 楼主| 发表于 2003-11-13 18:56:00 | 只看该作者
谢谢兔子兄先
6#
发表于 2003-11-13 21:37:00 | 只看该作者
我就查出了你的库中1700人里只有881人没错
7#
发表于 2003-11-13 22:34:00 | 只看该作者

好难,头都想破啦

中午仔细做了一下
数据多就是麻烦啊
建议一:
优化数据库结构,你的 [宏达]表设计不太好,严重冗余
应该改成 两个表
养老编号  姓名  单位编号 日期
养老编号 所属日期
另外在养老编号 和所属日期上建立索引
建议二:
在汇总的时候,不要一次全部汇总
可以采取 按年度 分别汇总,这样筛选判别的数据量成倍减少,可以减少用户等待的不耐烦程度

解决方法一:
采用交叉表 把所有不符合要求的年度都显示出来
察看比较直观

代码:
TRANSFORM IIf(IIf(IsNull([宏达].[所属日期]),0,[宏达].[所属日期])>Min([宏达_1].[所属日期]),0,1) AS 值
SELECT 宏达.姓名
FROM 宏达 LEFT JOIN 宏达 AS 宏达_1 ON 宏达.姓名 = 宏达_1.姓名
WHERE (((宏达.所属日期) Like "2003*"))
GROUP BY 宏达.姓名, 宏达_1.姓名
PIVOT 宏达.所属日期;

如图


解决方法二:
按照你的数据库设计要求,把相关记录查找出,填写入表中
嘻嘻,兔兔再想想,我这儿也是好慢好慢

本帖子中包含更多资源

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

x
8#
发表于 2003-11-13 23:26:00 | 只看该作者
写了一下
按照你的这个表结构,如果该同志从来都不交,肯定是漏网之鱼的
以下速度还是慢
建议按照年度 或者部门进行分别汇总
Rs.Open "select * from 宏达  where 所属日期 like "2003%" order by 养老编号,所属日期 ", Conn, adOpenDynamic, adLockOptimistic
速度好狠多

代码:
Dim Conn As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim RsErr As ADODB.Recordset
'存储变量
Dim SDATE As String, SNO As String


Set Conn = CurrentProject.Connection
Set Rs = New ADODB.Recordset
Set RsErr = New ADODB.Recordset

Rs.Open "select * from 宏达   order by 养老编号,所属日期 ", Conn, adOpenDynamic, adLockOptimistic

RsErr.Open "select * from 出错", Conn, adOpenDynamic, adLockOptimistic

If Not Rs.EOF Then
    While Not Rs.EOF
        If SNO = "" Then
            SNO = Rs!养老编号
            SDATE = Rs!所属日期
        Else
            If Rs!养老编号 = SNO Then
                If Rs!所属日期 = SDATE + 1 Then
                    SDATE = Rs!所属日期
                Else
                    RsErr.AddNew
                    RsErr!养老编号 = SNO
                    RsErr!所属日期1 = SDATE
                    RsErr!所属日期2 = Rs!所属日期
                    '这儿如果定义为前一月,则rserr!所属日期2=rs!所属日期-1'
                    '但需要判断是不是1号,否则会出错这儿加1好像有日期函数,兔兔忘了
                    RsErr.Update
                    
                End If
            Else
                '换人啦
                '判断前面的是否全交到现在的月份
                If SDATE = Year(Date) & Month(Date) Then
                    '这位老大全交啦,放人,放人
                Else
                    '不要逃
                    RsErr.AddNew
                    RsErr!养老编号 = SNO
                    RsErr!所属日期1 = SDATE
                    '同样这儿也需要如果要多加一个月
                    'RsErr!所属日期1 = SDATE+1,判断是不是月底哦,这儿加1好像有日期函数,兔兔忘了
                    RsErr!所属日期2 = Year(Date) & Month(Date)
                    RsErr.Update
                End If
                '好了,开始下一位
                SNO = Rs!养老编号
                SDATE = Rs!所属日期
            End If
        
        End If
        Rs.MoveNext
        '最后一名也不能放过
         '判断前面的是否全交到现在的月份
        If Rs.EOF Then
            If SDATE = Year(Date) & Month(Date) Then
                '这位老大全交啦,放人,放人
            Else
                '不要逃
                RsErr.AddNew
                RsErr!养老编号 = SNO
                RsErr!所属日期1 = SDATE
                RsErr!所属日期2 = Year(Date) & Month(Date)
                RsErr.Update
            End If
        End If
    Wend
End If
MsgBox "累死俺啦,终于自动汇总完啦~!!"


Rs.Close
RsErr.Close

Set Rs = Nothing
Set RsErr = Nothing

Set Conn = Nothing
9#
 楼主| 发表于 2003-11-14 16:37:00 | 只看该作者
兔子兄,这些数据是丛青岛市负责养老帐号的部门考来得,原来是vf只有这么一个表,现在的数据量成了45万左右把,我得解决办法是运行查找后就和朋友出去涮火锅,回来后正好运行完毕,另外我查找出的不符合的有900多条
10#
发表于 2003-11-14 17:22:00 | 只看该作者
我晕

如果只是一次执行的话,慢就慢呗
只要结果实现啦就可以啦

呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-19 03:23 , Processed in 0.113258 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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