工作需要會分別從SAP、webdirect和前人寫好的SQL資料庫(不確定怎麼稱呼,類似excel檔的型式,也是從公司資料庫抓報表,在設定好的格式中輸入不同時間段可以抓資料,貌似使用oracle連線),撈各種不同報表,然後複製貼上到excel檔再進行分析、比對差異。
我學習SQL的目的是為了做出上述的excel檔,因為前人已經離職,沒有可以詢問的對象,就目前查詢了解到的內容SQL語法應用範圍很廣,SAP和oracle又好像是類似的企業資源管理系統,因此反而不知道應該從哪裡開始學習,請求高人指點。
ps. 若以現行手法,登入各資料庫下載報表,再手動貼上到excel檔案,並以檔案內各種函數公式分析差異,目前因資料量過大而跑很慢,用sql資料庫可能改善嗎?
如果是我,我會用Python,搭配物件化的庫可以很簡單的自資料庫撈出資料而免去寫SQL的困擾
像是sqlalchemy,它也有Excel的庫可以用。
答2:sql資料庫是什麼鬼= =
既然是問「請問SQL應該從哪裡入門?」,那就給新手幾個建議吧:
SQL不像其他語言變化那麼大(是指常用的部份),基本上只要看完一本SQL200幾書,之後再配合google找特定的問題,可以解決90%的問題,前提要有耐心看完,而且照著書本做過兩遍以上,說起來容易,做起來比想像中要困難。
如果有人問學程式最困難的地方在哪,是英文?還是數學?其實最難的是持之以恆的寫,新手最容易犯的錯,以為看懂就是懂,程式沒有寫過兩遍以上不算是真的懂,通常大多數的新手會掛在這關,所以真的不要用嘴寫程式,當然前提也還是要先看懂,然後每天不間斷的動手寫,碰到問題再想辦法解,沒有經過這樣無數次循環的人,基本就是外行人。
無論你的問題是什麼,處理資料型的問題,通常是來源 -> 分析 -> 處理的過程,所以要先確認你的資料來源有哪些? 就一個excel檔?還是有其他的部份,看你的描述似乎有點混亂了,分析的話,就是把你的資料進行正規化,相關正規化的資料,可自行google,等做到了這步,接著處理就跟SQL的語法有關了,當然正規化的好壞,會決定之後的維護和SQL的語法的寫法,所以至少要對你的資料有基本的了解,例如可以劃分成幾張表,然後用SQL的語法代替excel的資料分析,不過最終應該還是要放到excel,因為圖表分析還是需要透過excel,除非配合其他的語言,那基本上就算是個報表系統了,能獨立做到這一步,也算是個程式設計師了。
我會 PYTHON , 也會 sql COMMAND 基本語法
後來發現 excel 可以直接撈 資料庫, 就用 vba 解決了 , 連 PYTHON 都不需要,
EXECL 2016 您可以試試看它的sql 連線,撈看看有沒有辦法撈到你要的資料。
然而 VBA 的巨集可以錄製動作,很多重複的動作都可錄製後修改。
如果能做到自動撈取自動進行分析、比對差異,那你的工作就輕鬆多了。
希望能幫到你。
第一次聽說Excel可以自動撈資料!
我會好好研究的,感謝你~
搜尋一下 Excel VBA 即可,
也可借閱相關書籍
https://www.echochio.nctu.me/2018/06/Execl-chi/
我寫的連正航資料庫 ... 然後 ..做些有的沒的亂寫一通可工作 ....
當然要套表 ... (我沒blog 上沒留 Excel 表 ....因為公司的資訊不方便留表 ...) 只留程式當 opensource ... 會用的去改吧 !!!
【ps. 若以現行手法,登入各資料庫下載報表,再手動貼上到excel檔案,並以檔案內各種函數公式分析差異,目前因資料量過大而跑很慢,用sql資料庫可能改善嗎?】
登入各個資料庫 ==> 那您可以,建立一台資料庫伺服機 ,DBLINK 或 程式JOB...等,將要用的資料都拋轉到,這台新的資料庫伺服機,定時或即時...都可以
寫好種函數公式分析差異,在資料庫的JOB,定時運算或及時運算 都可
以上僅供參考
SQL資料庫==> 沒有這個東西?
資料庫有 PostgreSQL、Microsoft Access、Microsoft SQL Server,Oracle、MySQL... 等
1.自己先找一台電腦裝一套MS-SQL.=>原因:新安裝好的SERVER ,比較乾淨,不會有一些奇奇怪的東西在系統中.
2.用"DBLINK" 連到各種不同的資料庫-含前人開的資料庫.確定有以看到這資料庫的內容及資料.
3.用T-SQL 將各種資料庫的資料匯整到自己SERVER的資料庫中,不同的TABLE .=>取得資料.
4.利用步驟3的TABLE ,寫T-SQL 整理出USER要的資料TABLE.=>請記得驗證資料或留驗證TABLE
5.開放TABLE 權限,讓USER 可用 EXCEL 透過ODBC 方式來取得資料.並將欄位整理好.存檔.
6.請USER要看資料時就:"更新資料"即可.
之後再簡化一相關的內容:如前人的資料,自己改寫到自己的SERVER,測試OK 後.前人就可以真正的變為前人了.
其他系統的來源資料:也可以在那些系統上寫 VIEW 來加快處理速度.
當然要善用MS-SQL 的排程讓這些程式定時去跑.
去上揚自強老師的課
你會受益良多
那也是我的啟蒙之師
FB有個超級資料庫