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

SELECT ... GROUP BY .. ORDER BY 欄位的問題

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
小賴



註冊時間: 2004-12-27
文章: 476


第 1 樓

發表發表於: 星期三 二月 11, 2009 10:50 am    文章主題: SELECT ... GROUP BY .. ORDER BY 欄位的問題 引言回覆

如果二個資料庫結構如下 :
Table1 : No, No1, No2
Table2 : No1, No2, No3
當我使用以下SQL 指令

SELECT No AS No1, MAX(No1) AS No2, MAX(No2) AS No3 FROM Table1 ;
    WHERE No1 NOT IN (SELECT No1 FROM Table2) ;
    GROUP BY No1 ;
    ORDER BY No1 ;
    INTO CURSOR CurTemp


請教:
1. WHERE No1 NOT IN (SELECT No1 FROM Table2) 子句中
  WHERE No1 之 No1 指的是原Table1 的 No 或是 No1
2. 同樣 GROUP 子句與 ORDER 子句中之No1指的是原Table1 的 No 或是 No1
3. 有無邏輯性的判斷方式 ?

PS : VFP9.0 SP2


小賴 在 星期三 二月 11, 2009 6:38 pm 作了第 1 次修改
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
區榮熾



註冊時間: 2005-11-14
文章: 191


第 2 樓

發表發表於: 星期三 二月 11, 2009 1:07 pm    文章主題: 引言回覆

我知道在 AS 之後的名稱, 在 Where 之後都不能作為操作需求的標的(常秀出找不到該xxx欄位字樣),依此, NO1 都應是原欄位.如一定要用的話,那就先行進檔(讓AS 後的成為欄位),再一次操作才能如願.
回頂端
檢視會員個人資料 發送私人訊息
區榮熾



註冊時間: 2005-11-14
文章: 191


第 3 樓

發表發表於: 星期五 二月 13, 2009 10:00 pm    文章主題: RE: 第三點思考方式 引言回覆

我是不知道 VFP9.0 能夠用 AS 之後的作欄位來運作的.
因 AS 之後的動作並無改變原檔內的實際欄位,所以當Where 之後用 AS 之後來運作就(仍舊以原欄位篩選)不會成功.(如果 VFP9.0 可以的話,那真的比 VFP6.0強太多了,省了一次以新欄位運作的資源)
回頂端
檢視會員個人資料 發送私人訊息
小賴



註冊時間: 2004-12-27
文章: 476


第 4 樓

發表發表於: 星期一 二月 16, 2009 8:16 am    文章主題: 引言回覆

感謝區兄的回應
我試的結果where子句用法應該就是如同你指點一樣
一般我也都是拆成數條sql指令避免混淆
group by 與 order by子句不知是否有人願意談一下用過的心得 ?
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
區榮熾



註冊時間: 2005-11-14
文章: 191


第 5 樓

發表發表於: 星期二 二月 17, 2009 9:01 am    文章主題: 引言回覆

小賴 寫到:
感謝區兄的回應
我試的結果where子句用法應該就是如同你指點一樣
一般我也都是拆成數條sql指令避免混淆
group by 與 order by子句不知是否有人願意談一下用過的心得 ?


Group By :意即要用什麼欄位,來集結做標的計算統計顯示等工作,如不加此語句,就達不到資料統合在一起的目的.
Order By :意即要依什麼欄位,來排順序,如不指定,則電腦自己決定(Recno()).

我也懂不太多,但能夠幸運的讓電腦依據我的要求達到預期目的就好了.
回頂端
檢視會員個人資料 發送私人訊息
ckp6250



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


第 6 樓

發表發表於: 星期二 二月 17, 2009 10:15 am    文章主題: 引言回覆

為什麼要拆成數條sql指令避免混淆呢?
用多重子查詢不行嗎 ?

SELECT * From (Select No AS No1, MAX(No1) AS No2, MAX(No2) AS No3 FROM Table1) T1 ;
    WHERE T1.No1 NOT IN (SELECT No1 FROM Table2) ;
    GROUP BY T1.No1 ;
    ORDER BY T1.No1 ;
    INTO CURSOR CurTemp
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
區榮熾



註冊時間: 2005-11-14
文章: 191


第 7 樓

發表發表於: 星期三 二月 18, 2009 1:39 pm    文章主題: 引言回覆

ckp6250 寫到:
為什麼要拆成數條sql指令避免混淆呢?
用多重子查詢不行嗎 ?

SELECT * From (Select No AS No1, MAX(No1) AS No2, MAX(No2) AS No3 FROM Table1) T1 ;
    WHERE T1.No1 NOT IN (SELECT No1 FROM Table2) ;
    GROUP BY T1.No1 ;
    ORDER BY T1.No1 ;
    INTO CURSOR CurTemp

ckp6250兄:謝謝你寫出的範例,我看到很高興,立即套進程式以達簡潔目的,程式碼如下;
SELECT 0
SELECT * From (Select Right(Left(Cus_area,2),1) As Area_un, Cus_no, Cus_area, Min(Cus_Date) As Cus_Date, Sum(Cus_pice) As Cus_pice, Sum(Cus_chg) As Cus_chg ;
FROM (cDbf_paid7) ) T1 WHERE &cDate1. And T1.Cus_pice > 1 Group by T1.Cus_no Order By T1.Cus_no, T1.Area_un Into Cursor fc_Alldata
INDEX ON Cus_no Tag Cusnp
Brows

執行結果卻顯示 "語法錯誤" ..............冷水一桶
請教:
這樣語法有限版本? (我的是 6.0)
還是我套用有誤?
(T1 的功能就是一條 SQL)
回頂端
檢視會員個人資料 發送私人訊息
syntech



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

第 8 樓

發表發表於: 星期三 二月 18, 2009 3:10 pm    文章主題: 引言回覆

vfp 版本問題.

vfp 6 的 sql 引擎沒那麼先進. XD
VFP 9 就大約與 SQL 2000 SERVER 吃的語法差不多,
當然函數還是差很多.

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

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



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


第 9 樓

發表發表於: 星期三 二月 18, 2009 4:12 pm    文章主題: 引言回覆

區榮熾兄
抱歉沒說清楚~
『多重子查詢』是VFP9的功能
因為小賴兄有提到,他的是VFP9,
我就沒有再多加說明了
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
區榮熾



註冊時間: 2005-11-14
文章: 191


第 10 樓

發表發表於: 星期三 二月 18, 2009 5:46 pm    文章主題: 引言回覆

ckp6250 寫到:
區榮熾兄
抱歉沒說清楚~
『多重子查詢』是VFP9的功能
因為小賴兄有提到,他的是VFP9,
我就沒有再多加說明了

空歡喜一場,鍵盤多K,程式拉多幾條SQL,也就是 9 - 6 差3級........還真多呢!
回頂端
檢視會員個人資料 發送私人訊息
syntech



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

第 11 樓

發表發表於: 星期三 二月 18, 2009 6:27 pm    文章主題: 引言回覆

所以大家要像我一樣,
花大錢弄一個 MSDN,
然後安裝 FPW 2.6, VFP 3,5,6,7,8,9 . Orz

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

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

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


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