找到mysql中同一列的两个连续行之间的差异

时间:2015-01-21 09:45:08

标签: mysql sql rows

我遇到的情况是我需要计算同一列的两个连续行之间的差异。这是我的名为'orders'结构的表。

orderid   type     productsales
1002      Order    120         
1002      Refund   -35   
1003      Order    199           
1003      Refund   -50            
1004      Order    245
1005      Order    80

现在,我想要只选择那些订单类型为“订单”的同一orderids之间的'productsales'差异的记录。 '退款'大于0

1 个答案:

答案 0 :(得分:2)

select orderid
from orders
group by orderid
having sum(case when `type` = 'Order' then productsales else 0 end) +
       sum(case when `type` = 'Refund' then productsales else 0 end) > 0

您需要从另一个值中减去这些值。但是,由于您已将-存储在我使用+的退款中。