|
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
ckp6250
註冊時間: 2004-07-30 文章: 1645
第 61 樓
|
發表於: 星期五 十月 13, 2017 4:59 am 文章主題: |
|
|
我才不去管這個哩,你要騎腳踏車環島,然後怪路程太遠?
【工欲善其事,必先利其器】我一直都跟客戶強調,電腦和系統,是生財器具,不要太計較。
拿INTEL ATOM CPU來跑erp,然後怪我程式跑太慢?
有些客戶真奇怪,買5萬元的電腦跑遊戲,然後買5千元的電腦棒跑erp?
合理而言,我們對硬體規格,取中間規格,不要求太好,但也不能太爛,若中間規格的硬體跑得順,我就是達標了,客戶也不能挑剔什麼。
我的想法是,軟體工程師應該把重心擺在軟體,而不是去擔心客戶若買了差勁電腦時該怎麼辦?
早年在clipper時代,沒有sql指令可用,我一張進銷存報表寫數百行,等轉到vfp之後,一行sql就解決了,速度更是快上百倍,從此,我就回不去了。
我以前當然也遇過類似問題,客戶抱怨系統跑得慢,我的處理方式很簡單,我帶筆電去他面前跑給他看,如果我也跑得慢,那是我的責任,若我跑得快,他的跑得慢,那就不是我的問题了,客戶都能接受這種說法,眼見為憑嘛。 |
|
回頂端 |
|
|
DennisTsai
註冊時間: 2005-07-26 文章: 177
第 62 樓
|
發表於: 星期五 十月 13, 2017 6:50 am 文章主題: |
|
|
這帖子看了很久了,怎一直覺得----有那麼難嗎?
不過當想切入一起討論時卻找不到適當的切入點,原因是我們之間開發系統的方式可能存在很大的差異
考勤系統約15年前我就交給不會程式的同仁去做了,再複雜的狀況,她們也都能處理妥善,這是我認為不難的由來
如果大家有興趣,也容許我逐步(不會太快,因為時間有限)發布,讓我們一起來探討另一種開發模式
但聲明在前,我無法給完整代碼,只提供觀念 |
|
回頂端 |
|
|
syntech
註冊時間: 2003-05-16 文章: 4225 來自: Taipei,Taiwan
第 63 樓
|
發表於: 星期五 十月 13, 2017 8:56 am 文章主題: |
|
|
我沒給程式.
交貨的系統是傳統XBASE 語法,不是 SQL 語法.
對問問題的樓主,他在找答案,
但我在閒嗑牙. XD _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
|
ckp6250
註冊時間: 2004-07-30 文章: 1645
第 64 樓
|
發表於: 星期五 十月 13, 2017 10:57 am 文章主題: |
|
|
syntech 寫到: | 我沒給程式.
交貨的系統是傳統XBASE 語法,不是 SQL 語法.
對問問題的樓主,他在找答案,
但我在閒嗑牙. XD |
但,您交錯貨啦。
人家樓主在第1樓,是問:『請問 sql 能直接產生空白嗎? 還是我個人想太多了??能不能請各位先進指點一下?? 』
人家問sql,您給XBASE,牛頭不對馬尾嘛。
我也在閒嗑牙,這個版太冷清了,偶爾熱鬧一下也好。
我給了太多的sql程式碼了,是不是該去刪掉了? |
|
回頂端 |
|
|
syntech
註冊時間: 2003-05-16 文章: 4225 來自: Taipei,Taiwan
第 65 樓
|
發表於: 星期五 十月 13, 2017 11:53 am 文章主題: |
|
|
我是示範 left outer join 及 ISNULL(). XD _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
|
ckp6250
註冊時間: 2004-07-30 文章: 1645
第 66 樓
|
發表於: 星期五 十月 13, 2017 3:41 pm 文章主題: |
|
|
看了您的【示範 left outer join 及 ISNULL()】
用了四句select , 那和我用一句select , 有什麼差別?請開示一下。 |
|
回頂端 |
|
|
syntech
註冊時間: 2003-05-16 文章: 4225 來自: Taipei,Taiwan
第 67 樓
|
發表於: 星期五 十月 13, 2017 4:08 pm 文章主題: |
|
|
差別是:
我不會這樣用,除非開發工具有限制. Orz
所以說,我的sql 語法沒學好.
這個例子中,
我不知道怎麼寫成1次 table scan 就可以搞定的方法,
前面說了,又有效率,占用資源又少的 sql 語法.
_________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
|
ckp6250
註冊時間: 2004-07-30 文章: 1645
第 68 樓
|
發表於: 星期五 十月 13, 2017 4:55 pm 文章主題: |
|
|
請教一下,不知道我的觀念對不對∼
如果有用到子查詢時,是否只有最內層的 table 有被 scan 到並丟到記憶體去了,之後,在它的上一層的 select , 是在 ram 中找資料,而沒有再重覆搜尋實體table ?
比如
SELECT 工號,;
姓名,;
上班時間, ;
下班時間, ;
忘了 ,;
IIF(!EMPTY(上班時間) AND !EMPTY(下班時間) ,worktime1,0000)+IIF(!EMPTY(上班時間) AND !EMPTY(下班時間) ,IIF(worktime2>240,240,worktime2),0000) AS '正常分鍾',;
IIF(!EMPTY(上班時間) AND !EMPTY(下班時間) AND overtime1>30,overtime1,0000)+IIF(!EMPTY(上班時間) AND !EMPTY(下班時間) AND overtime2>0,overtime2,0000) as '�[班分鍾';
FROM (;
SELECT 工號,;
姓名,;
上班時間, ;
下班時間, ;
忘了 ,;
(HOUR(CTOT('08:00'))*60+MINUTE(CTOT('08:00')))-(HOUR(CTOT(上班時間))*60+MINUTE(CTOT(上班時間))) AS overtime1 ,;
(HOUR(CTOT('12:00'))*60+MINUTE(CTOT('12:00')))-(HOUR(CTOT(IIF(上班時間<'08:00','08:00',上班時間)))*60+MINUTE(CTOT(IIF(上班時間<'08:00','08:00',上班時間)))) AS worktime1 ,;
((HOUR(CTOT(下班時間))*60+MINUTE(CTOT(下班時間))-HOUR(CTOT('18:00'))*60+MINUTE(CTOT('18:00')))) AS overtime2 ,;
((HOUR(CTOT(IIF(下班時間<'18:00','17:00',下班時間)))*60+MINUTE(CTOT(IIF(下班時間<'18:00','17:00',下班時間)))-HOUR(CTOT('13:00'))*60+MINUTE(CTOT('13:00')))) AS worktime2 ;
FROM (;
SELECT 工號,;
姓名,;
MAX(上班時間) AS 上班時間,;
MAX(下班時間) AS 下班時間,;
忘了 ;
FROM (;
SELECT 工號,;
姓名,;
MIN(IIF(班別代碼='0',刷卡時間,SPACE(5))) AS 上班時間,;
MAX(IIF(班別代碼='1',刷卡時間,SPACE(5))) AS 下班時間,;
IIF(班別代碼='2',刷卡時間,SPACE(5)) AS 忘了;
FROM abc ;
group by 工號,班別代碼) a ;
GROUP BY 工號) b ) c
可不可以說,abc這個 table 只有在最內層被使用到一次,然後就沒有用到它了,其它外層的加工都是在記憶體中進行?
這是我個人對sql子查詢的認知啦,也不曉得這想法那兒來的?或許是我看到的abc只出垷一次而己。 |
|
回頂端 |
|
|
goodnight
註冊時間: 2008-10-13 文章: 472 來自: 台南市
第 69 樓
|
發表於: 星期六 十月 14, 2017 6:49 pm 文章主題: |
|
|
syntech 寫到: | goodnight 寫到: |
我沒有智慧手機耶, 只有傳統手機, 怎麼辦?? |
一次攻頂.
iphone8 或是 note8,
遇到緊急情況,還可以把手機扔出去當成手榴彈. |
哈哈哈~~ _________________ 希望有更多人來參與
VFP wiki - 需要大家一起完成的VFP電子書與FAQ |
|
回頂端 |
|
|
goodnight
註冊時間: 2008-10-13 文章: 472 來自: 台南市
第 70 樓
|
發表於: 星期六 十月 14, 2017 6:52 pm 文章主題: |
|
|
ckp6250 寫到: | goodnight 寫到: |
我的功力還不到一行SQL啦, 雖然我很想, 我的程式是參考sy大提供的碼稍微改一下而成的,
請問程式碼要貼哪?? 是貼在第一樓, 還是直接用回覆的方式貼上? |
我對dbf比較有興趣,但我講了三回了,您都不提上來,不想理您啦。 |
不對, 應該是 csv 才對, dbf是把 csv 匯進來 _________________ 希望有更多人來參與
VFP wiki - 需要大家一起完成的VFP電子書與FAQ |
|
回頂端 |
|
|
goodnight
註冊時間: 2008-10-13 文章: 472 來自: 台南市
第 71 樓
|
發表於: 星期六 十月 14, 2017 6:58 pm 文章主題: |
|
|
DennisTsai 寫到: | 這帖子看了很久了,怎一直覺得----有那麼難嗎?
不過當想切入一起討論時卻找不到適當的切入點,原因是我們之間開發系統的方式可能存在很大的差異
考勤系統約15年前我就交給不會程式的同仁去做了,再複雜的狀況,她們也都能處理妥善,這是我認為不難的由來
如果大家有興趣,也容許我逐步(不會太快,因為時間有限)發布,讓我們一起來探討另一種開發模式
但聲明在前,我無法給完整代碼,只提供觀念 |
有難度啊
考勤機的設定是12:00以前, 狀態碼是0, 12:01 分以後, 狀態碼是1
有一個人在 12:10刷了卡, 此時是下班刷卡還是上班刷卡??
是漏刷了哪一段?? _________________ 希望有更多人來參與
VFP wiki - 需要大家一起完成的VFP電子書與FAQ
goodnight 在 星期六 十月 14, 2017 7:10 pm 作了第 1 次修改 |
|
回頂端 |
|
|
goodnight
註冊時間: 2008-10-13 文章: 472 來自: 台南市
第 72 樓
|
發表於: 星期六 十月 14, 2017 7:02 pm 文章主題: |
|
|
程式在公司, 我找時間整理一下, 回到家再上傳
因為內含個資, 有點不太方便
我要說明一下, 我提的問題, 只是把考勤記錄整理好, 做成一張刷卡清單給人事參考
原始的考勤檔則會直接匯入 dsc hr 系統 _________________ 希望有更多人來參與
VFP wiki - 需要大家一起完成的VFP電子書與FAQ |
|
回頂端 |
|
|
syntech
註冊時間: 2003-05-16 文章: 4225 來自: Taipei,Taiwan
第 73 樓
|
發表於: 星期一 十月 16, 2017 1:40 pm 文章主題: |
|
|
54 樓的 MS SQL 版本,
可觀察SQL SERVER 會怎麼處理這個命令.
TABLE SCAN 很花時間,
產生另一個CURSOR 也會很花時間,
UNION 一樣,很花時間.
後來的版本用太多 VFP 函式,
請自行測試. _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
|
ckp6250
註冊時間: 2004-07-30 文章: 1645
第 74 樓
|
發表於: 星期一 十月 16, 2017 9:59 pm 文章主題: |
|
|
68樓只有 scan一次,沒有使用union ,
評估起來如何? |
|
回頂端 |
|
|
goodnight
註冊時間: 2008-10-13 文章: 472 來自: 台南市
第 75 樓
|
|
回頂端 |
|
|
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|