2017-03-07 116 views
-1

我有一个开源销售点系统的数据库。 名为ticketlines的表格包含每个销售商品。 给定的任何折扣都存储在此表中,没有项目名称。 我试图找到一个查询,在那里我可以读出与行之前的空产品名称的行来计算项目销售价格。MySQL数据库比较2行

POS Table Ticketlines

+0

欢迎来到SO!这个问题有点难以理解。你能否发布一个[最小,完整和可验证的例子](http://stackoverflow.com/help/mcve)? – user5226582

+0

“之前的行”不是RDBMS意识到的概念。显示您的DDL和示例数据。 – JimmyB

回答

0

自联接将达到这个目的。这个想法是用产品寻找票。折扣行将加入机票号码匹配的地方,并且折扣行不包含产品,并且产品线号加1等于折扣行号。

select p.ticket, 
      p.line, 
      p.units, 
      p.price as unit_price, 
      ifnull(d.discount,0) as discount, 
      p.units * (p.price - ifnull(d.discount,0)) as sale_price 
    from ticketlines p 
left join ticketlines d on (d.ticket=p.ticket and d.line=p.line+1 and d.product is null) 
    where p.product is not null; 
+0

非常感谢你的工作。 – Alex32