2014-09-06 30 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

相关问题