mySQL在两行值之间进行减法运算

mySQL在两行值之间进行减法运算,mysql,Mysql,我想找出一个简单的方法,在两行值之间进行减法 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

我想找出一个简单的方法,在两行值之间进行减法

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_批次
都有一个
num_部分
01和09,现在我想在每个部分批次之间减去“数量值”

预期结果

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
有什么建议吗?合并苏米夫?我被困在这里了

谢谢各位,
GC

我认为如果的话,
求和就可以完成这项任务。从这个示例中,我认为您希望将
num_secti
9
的值与
1
的值相减。请尝试以下查询:

SELECT
    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
选择
Num_群,
数量,
装船日期,
求和(如果(num_secti=1,qte_1,-1*qte_1))作为qte_1,
求和(如果(num_secti=1,qte_2,-1*qte_2))作为qte_2,
求和(如果(num_secti=1,qte_3,-1*qte_3))作为qte_3,
求和(如果(num_secti=1,qte_4,-1*qte_4))作为qte_4
从…起
按数量分组
以下是您示例中的小提琴:

SELECT
    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