ACCESS中通過一個字段補齊更新另一個字段


[干貨從下面紅字開始]

搞了好久的一個問題終於有結果……

根據學生進出館的次數和學生報名人數來分配自習間

 

學生報名是通過工號(學號)來報名的;

而門禁系統統計出來的數據有絕一大部分僅有 卡號沒有 工號和姓名,

即便統計出來也不准啊:

 

各種問,各種找,

問財務,說給的卡號沒有問題,

問門禁管理人員,說搞好了給我電話,

搞好幾天也沒有給我打電話,

據說是簡單的看了下沒有搞明白,當時一同事在那看見了

 

就這光導出日志就花了NN久。(門禁是office 2003)每次只能導60000條數據,還要等10分鍾導一次,

中間再死幾次機,我KAO……

 

到最后還是要靠自己……

找了好久才從門禁系統里面導出學生的卡號,工號,姓名這張表,

竊喜,

真是什么事都能遇上:結果一對比,

一條數據也對不上,WHAT??????

 

原來,

門禁系統中,學生信息(卡號,工號,姓名)和日志導出的信息中的卡號居然不一樣:

學生信息卡中:卡號是字符型,而日志中則是數字型,所有前面的‘0’字符都給吃了。

OH,SHIT!!這樣的系統也能賣??????????

 (雖為技術部的我,也只能干瞪眼,因為上系統,只是一拍腦袋的事情。)

 

我想問我可以罵人嗎,

沒有辦法,還要處理這些破數據,本以為很簡單的事,我的機器上僅有ACCESS數據庫,

好吧,所有的數據都導入ACCESS,

 

才發現,需要一個新的字段,把原來的不全的卡號給補全

環境:ACCESS 目標:卡號是8位的,不足的前面用‘0’補全)

 

本以為是多么EASY 的一件事,

可是發現並不容易,各種找:

 

最后靜心想想:

1、把每一個卡號都在前面加8個‘0’

2、再從右邊截取8位

那也搞了我一個晚上,

原來就是一句話的問題

select right(('00000000'&acountID),8) as cardID,stuID,stuName into countedStu_new from countedStu

 

直接寫入到另一個表中。

 

最后用的是這樣一句話:

select a.stuID,a.stuName,a.cardID,b.times  into roomResult from AllCardIDStu as a,countStu_new as b where a.cardID=b.cardID and a.stuID in(select stuID from enrollRoom)  order by b.times desc 

 

網上查了好多,都說不行,得搞到SQL SEVER 里寫函數什么的。

終於自己一句話就搞定了。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM