SQL: wie man mehrere Werte der Unterabfrage für die Berechnung in der Hauptabfrage speichert

Mein Tisch ist wie folgt

item | date | q_in | q_out | ---------------------------------- a | 25-08-2016 | 100 | 50 b | 26-09-2016 | 100 | 0 ----- upto b | 10-09-2016 | 0 | 100 

Ich brauche performance wie folgt: –

 item | open_stock | inward | outward | balance| -----|------------|--------|---------|--------| a | 1500 | 10000 | 500 | 1100 | b | 500 | 5000 | 1000 | 4500 | 

woher

  • open_stock = Gleichgewicht von q_in – q_out bis 31-08-2016
  • inward = total q_in vom 01-09-2016 bis 10-09-2016
  • outward = total q_out vom 01-09-2016 bis 10-09-2016
  • balance = open_stock + nach innen – nach außen

und meine Frage ist wie folgt, die Ihre Hilfe braucht

 select item, (select (SUM(q_in) - SUM(q_out)) from sale_table where date >= '2016-08-25' and date <= '2016-08-31') as open_stock, SUM(q_in) as inward, SUM(q_out) as outward , (***open_stock + inward - outward***) as balance from sale_table where date >= '2016-09-01' and date <= '2016-09-10' group by item 

Für mysql:

 select item, (@open_stock := select (SUM(q_in) - SUM(q_out)) from sale_table where date >= '2016-08-25' and date <= '2016-08-31') as open_stock, SUM(q_in) as inward, SUM(q_out) as outward , (@open_stock + SUM(q_in) - SUM(q_out)) as balance from sale_table where date >= '2016-09-01' and date <= '2016-09-10' group by item