[干貨從下面紅字開始]
搞了好久的一個問題終於有結果……
根據學生進出館的次數和學生報名人數來分配自習間
學生報名是通過工號(學號)來報名的;
而門禁系統統計出來的數據有絕一大部分僅有 卡號沒有 工號和姓名,
即便統計出來也不准啊:
各種問,各種找,
問財務,說給的卡號沒有問題,
問門禁管理人員,說搞好了給我電話,
搞好幾天也沒有給我打電話,
據說是簡單的看了下沒有搞明白,當時一同事在那看見了
就這光導出日志就花了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 里寫函數什么的。
終於自己一句話就搞定了。