mySQL在2行值之间进行减法

时间:2013-11-13 01:52:36

标签: mysql

我试图找出一个简单的在2行值之间进行减法..

Num_groupe |  num_lot   |   num_secti | ship_date | qte_1 | qte_2 | qte_3 | qte_4
Instock    |    D2312   |   01        | 12-juin   | 10    | 30    | 10    | 10
Instock    |    D2312   |   09        | 12-juin   | 8     | 4     | 6     | 4
Instock    |    C7788   |   01        | 18-sept   | 30    | 10    | 25    | 25
Instock    |    C7788   |   09        | 18-sept   | 5     | 8     | 5     | 8
Instock    |    W3300   |   01        | 11-déc    | 10    | 25    | 30    | 10
Instock    |    W3300   |   09        | 11-déc    | 5     | 4     | 5     | 8
Instock    |    Q1234   |   01        | 03-févr   | 10    | 25    | 10    | 30
Instock    |    Q1234   |   09        | 03-févr   | 6     | 5     | 8     | 5

每个num_lot都有num_section 01和09,现在我想在每个版块之间减去'数值'。

实施例。

lot D2312 | qte_1 :  10 - 8 = **2** | qte_2 : 30 - 4 = **26**  .....

预期结果

Num_groupe |  num_lot   |   num_secti | ship_date | qte_1 | qte_2 | qte_3 | qte_4
Instock    |    D2312   |   01        | 12-juin   | 2     | 26    | 6     | 6
Instock    |    C7788   |   01        | 18-sept   | 25    | 2     | 20    | 7

有什么建议吗?合并? SUMIF?我被困在这里:S

谢谢你们, GC

1 个答案:

答案 0 :(得分:0)

我认为SUM IF会完成任务。从示例中,我认为您要从num_secti 9中减去1SELECT Num_groupe, num_lot, ship_date, SUM( IF(num_secti = 1, qte_1, -1 * qte_1) ) AS qte_1, SUM( IF(num_secti = 1, qte_2, -1 * qte_2) ) AS qte_2, SUM( IF(num_secti = 1, qte_3, -1 * qte_3) ) AS qte_3, SUM( IF(num_secti = 1, qte_4, -1 * qte_4) ) AS qte_4 FROM <your table name> GROUP BY num_lot 的值。请尝试以下查询:

{{1}}

以下是您示例中的小提琴:http://sqlfiddle.com/#!2/d3095/2