2014-09-06 82 views
-1

列的總和我有一個MySQL表這樣的:選擇具有相同名稱和大小

material_name size  rcv  issue 
abc    250mm  10  8 
abc    250mm  10  8 
abc    150mm  25  4 
dfz    450mm  15  6 
dfz    250mm  42  25 
dfz    250mm  34  35 
xyz    250mm  25  20 
xyz    150mm  42  40 
lmn    150mm  10  1 

我想select total rcvtotal issue 其中兩個的material_name and size是唯一的。

回答

0

我想你希望以下對(MATERIAL_NAME,SIZE)是唯一的。在這種情況下,試試這個:

SELECT MATERIAL_NAME, SIZE, SUM(RCV), SUM(ISSUE) 
    FROM TABLE 
    GROUP BY MATERIAL_NAME, SIZE; 

否則,如果你不希望有一列重複 - 如:

abc 250 mm 
abc 150 mm 

你需要一個附加標準(其中一個必須被忽略)。

或者,也許你想在兩個部分分裂問題:

-- for name 
SELECT MATERIAL_NAME, SUM(RCV), SUM(ISSUE) 
    FROM TABLE 
    GROUP BY MATERIAL_NAME, SIZE; 

-- for size 
SELECT SIZE, SUM(RCV), SUM(ISSUE) 
    FROM TABLE 
    GROUP BY MATERIAL_NAME, SIZE; 
+0

感謝Curiosu,它爲我工作。 但你能解釋一下GROUP BY關鍵詞嗎? – 2014-09-06 11:00:40

+1

Group通過簡單的表示這些列定義組。因此,您可以在輸出中爲數據集中各列的每個唯一組合組獲得一行。不是說,只要您使用group,那麼結果中的所有列都必須是按列組或列表形式的某個agregate函數(sum,max,min等)。 – Adam 2014-09-06 11:04:55

+0

是的,您是對的。我編輯了我的帖子,以包括這種情況,但我真的認爲他想測量一些由名稱和大小指定的材料。 – 2014-09-06 11:11:42