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

select Group By 語法小發現

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


註冊時間: 2003-01-30
文章: 2160


第 1 樓

發表發表於: 星期二 一月 18, 2005 6:05 pm    文章主題: select Group By 語法小發現 引言回覆

以前對於用 select 再加上GROUP BY 時, 想要多抓一些欄位來顯示時, 常常受限於 group by 的欄位, 例如:
產品編號的數量統計資料
select rece_dat.pro_no,sum(rece_dat.qty) as sumqty from rece_dat group by rece_dat.pro_no
但如果想要順便顯示產品名稱時就會出現問題
這樣是不合法的語法:
select rece_dat.pro_no,product.name,sum(rece_dat.qty) as sumqty from rece_dat left join product on rece_dat.pro_no=product.pro_no group by rece_dat.pro_no

但今天突然想到其實也可以這樣做就可以了.
select rece_dat.pro_no,max(product.name) as name,sum(rece_dat.qty) as sumqty from rece_dat left join product on rece_dat.pro_no=product.pro_no group by rece_dat.pro_no

真是的, 要是早點想到, 也不須要另外寫一堆程式來處理這個問題. 希望對你們有幫助.

_________________
利用>>搜尋<<的功能會比問的還要快得到答案.


garfield 在 星期四 一月 20, 2005 4:35 pm 作了第 1 次修改
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
ctcwu



註冊時間: 2003-09-01
文章: 6


第 2 樓

發表發表於: 星期三 一月 19, 2005 4:12 pm    文章主題: 引言回覆

我也沒想到,謝謝!!
回頂端
檢視會員個人資料 發送私人訊息
syntech



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

第 3 樓

發表發表於: 星期三 一月 19, 2005 4:17 pm    文章主題: 引言回覆

套用一句最近常用的話:"我不能佩服您再多" Smile
_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

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



註冊時間: 2004-05-11
文章: 909


第 4 樓

發表發表於: 星期三 一月 19, 2005 9:25 pm    文章主題: 引言回覆

我以為跟我上次的困擾一樣
我是受限於group by 之後的欄位....

有沒有人跟我一樣阿...
雖然我解決了~~~~~

_________________
福隆昌淨水有限公司--淨水器的專家,淨水器,飲水機,濾心!!

想了解更多,您可上幸福雞湯組.找尋!!丁澐瑄.老師.

          愛作夢
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2160


第 5 樓

發表發表於: 星期三 一月 19, 2005 10:35 pm    文章主題: 引言回覆

goto-dream, 是遇到那一種 group by 的問題, 又如何解決的呢?
_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
goto-dream



註冊時間: 2004-05-11
文章: 909


第 6 樓

發表發表於: 星期四 一月 20, 2005 2:26 pm    文章主題: 引言回覆

跟你的問題是不一樣的.如下面的SQL敘述
Select A1,A2,A3,A4,A5,A6,SUM(E) AS E,SUM(F) AS F FROM Table1 Group By A1,A2,A3,A4,A5,A6

Group By A1,A2,A3,A4,A5,A6 太多欄位時,會有問題
就算在VFP8也一樣是......
剛開始我還以為我沒有安裝SP1.再來以為是SQL語法有問題...
後來刪除一各以上欄位時...發現到Group By太多欄位了....



左想又想.....
發覺可以這樣轉換
代碼:

select A1,A2,A3,A4,A5,A6, E, F, '      ' as A7 FROM Table1 into cursor cur1

select cur1
scan
   replace A7 with a2+a3+A4+A5+A6
endscan

Select A1,A7,SUM(E) AS E,SUM(F) AS F FROM cur1
Group By A1,A7 into cursor rptTable



這樣就出來了......


方法是不是很笨~~~~.....沒關係...能出來.....先解決.......

_________________
福隆昌淨水有限公司--淨水器的專家,淨水器,飲水機,濾心!!

想了解更多,您可上幸福雞湯組.找尋!!丁澐瑄.老師.

          愛作夢
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2160


第 7 樓

發表發表於: 星期四 一月 20, 2005 4:34 pm    文章主題: 引言回覆

那你的這個問題也一樣可以用我這個方法
Select A1,max(A2) as a2,max(A3) as a3,max(A4) as a4,max(A5) as a5,max(A6) as a6,SUM(E) AS E,SUM(F) AS F FROM Table1 Group By A1
這樣也會出來 ^^

_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
goto-dream



註冊時間: 2004-05-11
文章: 909


第 8 樓

發表發表於: 星期五 一月 21, 2005 6:07 pm    文章主題: 引言回覆

我還看不懂這方法....讓我思考一下....
_________________
福隆昌淨水有限公司--淨水器的專家,淨水器,飲水機,濾心!!

想了解更多,您可上幸福雞湯組.找尋!!丁澐瑄.老師.

          愛作夢
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2160


第 9 樓

發表發表於: 星期五 一月 21, 2005 6:17 pm    文章主題: 引言回覆

因為用了 group by 所以在select 後面的欄位清單是只能用group by 後面的欄位及用它內定的那些函數, 所以不能將沒在group by 所列出來的欄位加在 select 之後, 所以才用max( 欄位) 來將它合法化. 所以也不一定要用 max() , 用 min() 及其它函數也可以. 這樣了解吧!
_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
BIN



註冊時間: 2004-07-22
文章: 94
來自: Tainan, Taiwan

第 10 樓

發表發表於: 星期一 一月 24, 2005 4:30 pm    文章主題: 引言回覆

Select A1,A2+A3+A4+A5+A6 AS A7,SUM(E) AS E,SUM(F) AS F FROM Table1 Group By A1,A7 into cursor rptTable
不知道這樣可不可以...
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

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


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