銷貨單資料,如何用SQL取得各[產品編號]之[數量]最大的單號? |
尚未結案
|
jeffreck
高階會員 發表:247 回覆:340 積分:197 註冊:2003-01-23 發送簡訊給我 |
|
jeffreck
高階會員 發表:247 回覆:340 積分:197 註冊:2003-01-23 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
引言: Select * from Table1 Where 單號= ( Select Top 1 單號 From Table1 As Ta Where 產品編號= Table1.產品編號 Order by 數量 desc ) 這樣的寫法好嗎??,是否有較好的方法?? < >< >< >< >select max(單號) as maxno from table1 where 產品編號= (Select distinct 產品編號 From Table1) 發表人 - P.D. 於 2005/02/26 00:27:10 |
jeffreck
高階會員 發表:247 回覆:340 積分:197 註冊:2003-01-23 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
引言:呵呵﹐受教受教﹗ 感謝P.D前輩指正﹐只看錯誤提示做的更正﹐沒有仔細看清題目﹒ ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================引言: 您好﹗ 試試這樣﹕ select max(單號) as maxno from table1 where 產品編號 In (Select distinct 產品編號 From Table1)插花一下, 這樣寫法是可以過, 但只會選出在 in 範圍內一筆最大號
------
忻晟 |
jeffreck
高階會員 發表:247 回覆:340 積分:197 註冊:2003-01-23 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
jeffreck
高階會員 發表:247 回覆:340 積分:197 註冊:2003-01-23 發送簡訊給我 |
引言: 您好﹗ 試試看﹕ Select 產品編號, 單號, Max(數量)As 最大數量 From Table Group By 產品編號 ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================謝謝前輩!! 有錯誤訊息如下: 伺服器: 訊息 8120,層級 16,狀態 1,行 1 資料行 'Table1.單號' 在選取清單中無效,因為它並未包含在彙總函數或 GROUP BY 子句中。 如加上 GROUP BY 產品編號 ,單號 會全都部單號都出來 |
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
Brian77
中階會員 發表:8 回覆:114 積分:94 註冊:2002-05-17 發送簡訊給我 |
SELECT A.* FROM Table1 A, ( SELECT 產品編號,MAX(數量) AS Q1 FROM Table1 GROUP BY 產品編號) B WHERE A.產品編號=B.產品編號 AND A.數量=B.Q1如果該產品有兩張單子具有同樣的最大數量, 那麼會這兩張單子都會出現 如果在這種情況下只想出現單號較大的單子的話: SELECT A.產品編號,MAX(A.單號) FROM Table1 A, ( SELECT 產品編號,MAX(數量) AS Q1 FROM Table1 GROUP BY 產品編號) B WHERE A.產品編號=B.產品編號 AND A.數量=B.Q1 GROUP BY A.產品編號 |
Miles
尊榮會員 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
引言: Select 產品編號, 單號, Max(數量)As 最大數量 From Table Group By 產品編號 有錯誤訊息如下: 伺服器: 訊息 8120,層級 16,狀態 1,行 1 資料行 'Table1.單號' 在選取清單中無效,因為它並未包含在彙總函數或 GROUP BY 子句中。 如加上 GROUP BY 產品編號 ,單號 會全都部單號都出來首先要先瞭解 group by 的語法 select field1, field2, max(field3) as newname ... max() 是集總函數, 不列入 group by 的範圍 其他 select 之後的欄位都是 group by 的條件, 所以有幾個 field 就必須要加在 group by 之後, 如 group by field1, field2 group by 就好像是 filter的條件, 也就是說會把 field1 field2視為一組 條件, 凡符合這樣組合的條件就視同為一筆記錄, 再由 max(欄位) 內的挑選最大值, 所以你要數量 則是 max(數量) 所以你的錯誤是發生在 select f1, f2 .... group by f1 (不足 f2) 改為 select f1, f2, max(f3) ... group by f1, f2就不會有問題 而你要的目的以這樣的做法應該就可以達到了! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |