VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入 

sql語法產生首尾筆的問題
前往頁面 上一頁  1, 2, 3, 4, 5
 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
ckp6250



註冊時間: 2004-07-30
文章: 1528


第 61 樓

發表發表於: 星期五 十月 13, 2017 4:59 am    文章主題: 引言回覆

  我才不去管這個哩,你要騎腳踏車環島,然後怪路程太遠?

  【工欲善其事,必先利其器】我一直都跟客戶強調,電腦和系統,是生財器具,不要太計較。

  拿INTEL ATOM CPU來跑erp,然後怪我程式跑太慢?

  有些客戶真奇怪,買5萬元的電腦跑遊戲,然後買5千元的電腦棒跑erp?

  合理而言,我們對硬體規格,取中間規格,不要求太好,但也不能太爛,若中間規格的硬體跑得順,我就是達標了,客戶也不能挑剔什麼。

  我的想法是,軟體工程師應該把重心擺在軟體,而不是去擔心客戶若買了差勁電腦時該怎麼辦?

  早年在clipper時代,沒有sql指令可用,我一張進銷存報表寫數百行,等轉到vfp之後,一行sql就解決了,速度更是快上百倍,從此,我就回不去了。

  我以前當然也遇過類似問題,客戶抱怨系統跑得慢,我的處理方式很簡單,我帶筆電去他面前跑給他看,如果我也跑得慢,那是我的責任,若我跑得快,他的跑得慢,那就不是我的問题了,客戶都能接受這種說法,眼見為憑嘛。
回頂端
檢視會員個人資料 發送私人訊息
DennisTsai



註冊時間: 2005-07-26
文章: 167


第 62 樓

發表發表於: 星期五 十月 13, 2017 6:50 am    文章主題: 引言回覆

這帖子看了很久了,怎一直覺得----有那麼難嗎?
不過當想切入一起討論時卻找不到適當的切入點,原因是我們之間開發系統的方式可能存在很大的差異
考勤系統約15年前我就交給不會程式的同仁去做了,再複雜的狀況,她們也都能處理妥善,這是我認為不難的由來
如果大家有興趣,也容許我逐步(不會太快,因為時間有限)發布,讓我們一起來探討另一種開發模式
但聲明在前,我無法給完整代碼,只提供觀念
回頂端
檢視會員個人資料 發送私人訊息
syntech



註冊時間: 2003-05-16
文章: 3821
來自: Taipei,Taiwan

第 63 樓

發表發表於: 星期五 十月 13, 2017 8:56 am    文章主題: 引言回覆

我沒給程式.
交貨的系統是傳統XBASE 語法,不是 SQL 語法.

對問問題的樓主,他在找答案,
但我在閒嗑牙. XD

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
ckp6250



註冊時間: 2004-07-30
文章: 1528


第 64 樓

發表發表於: 星期五 十月 13, 2017 10:57 am    文章主題: 引言回覆

syntech 寫到:
我沒給程式.
交貨的系統是傳統XBASE 語法,不是 SQL 語法.

對問問題的樓主,他在找答案,
但我在閒嗑牙. XD


但,您交錯貨啦。
人家樓主在第1樓,是問:『請問 sql 能直接產生空白嗎? 還是我個人想太多了??能不能請各位先進指點一下?? 』

人家問sql,您給XBASE,牛頭不對馬尾嘛。 Laughing

我也在閒嗑牙,這個版太冷清了,偶爾熱鬧一下也好。

我給了太多的sql程式碼了,是不是該去刪掉了?
回頂端
檢視會員個人資料 發送私人訊息
syntech



註冊時間: 2003-05-16
文章: 3821
來自: Taipei,Taiwan

第 65 樓

發表發表於: 星期五 十月 13, 2017 11:53 am    文章主題: 引言回覆

我是示範 left outer join 及 ISNULL(). XD
_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
ckp6250



註冊時間: 2004-07-30
文章: 1528


第 66 樓

發表發表於: 星期五 十月 13, 2017 3:41 pm    文章主題: 引言回覆

看了您的【示範 left outer join 及 ISNULL()】

用了四句select , 那和我用一句select , 有什麼差別?請開示一下。
回頂端
檢視會員個人資料 發送私人訊息
syntech



註冊時間: 2003-05-16
文章: 3821
來自: Taipei,Taiwan

第 67 樓

發表發表於: 星期五 十月 13, 2017 4:08 pm    文章主題: 引言回覆

差別是:

我不會這樣用,除非開發工具有限制. Orz

所以說,我的sql 語法沒學好.
這個例子中,
我不知道怎麼寫成1次 table scan 就可以搞定的方法,
前面說了,又有效率,占用資源又少的 sql 語法.

Crying or Very sad Crying or Very sad Crying or Very sad Crying or Very sad

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
ckp6250



註冊時間: 2004-07-30
文章: 1528


第 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
文章: 387
來自: 台南市

第 69 樓

發表發表於: 星期六 十月 14, 2017 6:49 pm    文章主題: 引言回覆

syntech 寫到:
goodnight 寫到:

我沒有智慧手機耶, 只有傳統手機, 怎麼辦??


一次攻頂.
iphone8 或是 note8,
遇到緊急情況,還可以把手機扔出去當成手榴彈. Shocked Shocked Shocked Shocked


哈哈哈~~

_________________
==========================
抬頭望一眼, 星星眨眼
==========================
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 雅虎訊息通 MSN Messenger
goodnight



註冊時間: 2008-10-13
文章: 387
來自: 台南市

第 70 樓

發表發表於: 星期六 十月 14, 2017 6:52 pm    文章主題: 引言回覆

ckp6250 寫到:
goodnight 寫到:

我的功力還不到一行SQL啦, 雖然我很想, 我的程式是參考sy大提供的碼稍微改一下而成的,
請問程式碼要貼哪?? 是貼在第一樓, 還是直接用回覆的方式貼上?


我對dbf比較有興趣,但我講了三回了,您都不提上來,不想理您啦。 Rolling Eyes


不對, 應該是 csv 才對, dbf是把 csv 匯進來

_________________
==========================
抬頭望一眼, 星星眨眼
==========================
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 雅虎訊息通 MSN Messenger
goodnight



註冊時間: 2008-10-13
文章: 387
來自: 台南市

第 71 樓

發表發表於: 星期六 十月 14, 2017 6:58 pm    文章主題: 引言回覆

DennisTsai 寫到:
這帖子看了很久了,怎一直覺得----有那麼難嗎?
不過當想切入一起討論時卻找不到適當的切入點,原因是我們之間開發系統的方式可能存在很大的差異
考勤系統約15年前我就交給不會程式的同仁去做了,再複雜的狀況,她們也都能處理妥善,這是我認為不難的由來
如果大家有興趣,也容許我逐步(不會太快,因為時間有限)發布,讓我們一起來探討另一種開發模式
但聲明在前,我無法給完整代碼,只提供觀念


有難度啊
考勤機的設定是12:00以前, 狀態碼是0, 12:01 分以後, 狀態碼是1
有一個人在 12:10刷了卡, 此時是下班刷卡還是上班刷卡??
是漏刷了哪一段??

_________________
==========================
抬頭望一眼, 星星眨眼
==========================


goodnight 在 星期六 十月 14, 2017 7:10 pm 作了第 1 次修改
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 雅虎訊息通 MSN Messenger
goodnight



註冊時間: 2008-10-13
文章: 387
來自: 台南市

第 72 樓

發表發表於: 星期六 十月 14, 2017 7:02 pm    文章主題: 引言回覆

程式在公司, 我找時間整理一下, 回到家再上傳
因為內含個資, 有點不太方便
我要說明一下, 我提的問題, 只是把考勤記錄整理好, 做成一張刷卡清單給人事參考
原始的考勤檔則會直接匯入 dsc hr 系統

_________________
==========================
抬頭望一眼, 星星眨眼
==========================
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 雅虎訊息通 MSN Messenger
syntech



註冊時間: 2003-05-16
文章: 3821
來自: Taipei,Taiwan

第 73 樓

發表發表於: 星期一 十月 16, 2017 1:40 pm    文章主題: 引言回覆

54 樓的 MS SQL 版本,
可觀察SQL SERVER 會怎麼處理這個命令.

TABLE SCAN 很花時間,
產生另一個CURSOR 也會很花時間,
UNION 一樣,很花時間.

後來的版本用太多 VFP 函式,
請自行測試.

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
ckp6250



註冊時間: 2004-07-30
文章: 1528


第 74 樓

發表發表於: 星期一 十月 16, 2017 9:59 pm    文章主題: 引言回覆

68樓只有 scan一次,沒有使用union ,
評估起來如何?
回頂端
檢視會員個人資料 發送私人訊息
goodnight



註冊時間: 2008-10-13
文章: 387
來自: 台南市

第 75 樓

發表發表於: 星期四 十月 19, 2017 2:42 pm    文章主題: 引言回覆

已經符合我需求的的 sql 語法
_________________
==========================
抬頭望一眼, 星星眨眼
==========================
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 雅虎訊息通 MSN Messenger
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
前往頁面 上一頁  1, 2, 3, 4, 5
5頁(共5頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作