2014-02-25 185 views
1

我已经搜索了一遍这个答案,但找不到我真正想要的东西!所以我不得不问在这里..重复时记录一个记录

我不知道该如何解释这一点,但这里是一个表:

Date   BL   Client Design  Ref1 Ref2 Ref3 Qte 
    14/01/2013 13011401 A  VT   VT1  JAUNE XL  3 
    14/01/2013 13011402 B  VT   VT2  GRIS L  30 
    16/01/2013 13011601 D  VT   VT1  GRIS L  10 
    16/01/2013 13011602 C  VT   VT2  GRIS L  32 
    19/01/2013 13011903 F  VT   VT2  JAUNE L  15 

我正在寻找一个结果可能看起来像下面的是:

Date   BL   Client Design  Ref1 Ref2 Ref3 Qte 
    14/01/2013 13011401 A  VT   VT1  JAUNE XL  3 
    14/01/2013 13011402 B  VT   VT2  GRIS L  62 
    16/01/2013 13011601 D  VT   VT1  GRIS L  10 
    19/01/2013 13011903 F  VT   VT2  JAUNE L  15 

编辑:金额QTE如果有重复的(设计,Ref1至,至Ref2,REF3

不知道这是否可能,但我会感谢您的帮助!

+3

你能解释一下基于什么重复吗? –

+0

我从你的表中了解到,它不是以标准化的形式。尝试创建两个表,将A,VT,VT1,JAUNE存储在一个表中,并将p_id作为主键。在其他表中,存储数量,日期,integer_id,foreign_key。然后你只需要按外键和汇总功能上的数量 – nextgtech

回答

1
table : mytable 

    col1   col2  Col3  col4 col5 col7 col8 col9 
    14/01/2013 13011401 A  VT  VT1  JAUNE XL  3 
    14/01/2013 13011402 B  VT  VT2  GRIS L  30 
    16/01/2013 13011601 D  VT  VT1  GRIS L  10 
    16/01/2013 13011602 C  VT  VT2  GRIS L  32 
    19/01/2013 13011903 F  VT  VT2  JAUNE L  15 

我明白了什么是您想复制的col4,col5,col7,col8此基础上,你可以不喜欢

SELECT col1,col2,Col3,col4,col5,col7,col8,SUM(col9) 
FROM mytable 
GROUP BY col4,col5,col7,col8; 

在本组将始终返回第一行其他领域

+0

这就是它感谢您的帮助:) – 0x58

+0

对不起,我有一个更多的问题,如果我们有两张桌子并且不想将第一张的结果与第二张的结果相比较,那该怎么办? – 0x58

+0

我不清楚你的问题,你可以发布另一个问题,以便每个人都可以帮助你。 –

0

你正在寻找的东西像

SELECT *, SUM(field) FROM table 
GROUP BY field1, field2 

其中field是要总结列和FIELD1和FIELD2是组你想要的列

0

试试这个

SELECT *, 
     Sum(field_name) 
FROM tablename 
GROUP BY column_name 
0
SELECT *, SUM(field) FROM table GROUP BY field 

将聚合函数(即SUM)应用到您需要总和的字段上,然后将Group By Ë相同.....

+0

格式化答案是一个好主意...提高可读性...欢迎来到SO伴侣:) – NoobEditor