 |
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
小賴
註冊時間: 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. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
 |
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. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
 |
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|