2017-03-07 106 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