2016-07-05 35 views
0

一週後搜索我不能寫這個查詢請幫助我。 我有3個表購買,selles,東西。 我想第一總和purchase.quantityselles.quantity字段分開,然後減去這兩個柱purchase.quantity selles.quantity然後GROUP BY purchase.scale,stuff.name從不同的表和組減去兩列

enter image description here


enter image description here


enter image description here


我有這3臺

table purchase: 
    'id', 'invoice_id', 'stuff_id', 'quantity', 'scale', 'price' 
table selles: 
    'id', 'selles_invoice_num', 'stuff_id', 'quantity', 'scale', 'price' 
table stuff: 
    'id', 'name' 

我有這樣的查詢,但結果(數量)是錯誤的

SELECT sum(purchase.quantity) - sum(selles.quantity) as quantities, 
     purchase.scale, 
     stuff.name , 
     stuff.id 
FROM purchase, 
    selles, 
    stuff 
where purchase.stuff_id = selles.stuff_id 
and purchase.scale = selles.scale 
and purchase.stuff_id = stuff.id 
group by purchase.scale, 
     stuff.name 
ORDER BY stuff.name , 
     purchase.scale 

enter image description here

+1

你是什麼意思'結果(數量)是錯的'? – Blank

+0

注意tnx –

+0

添加一些示例數據(不要太多,不要太少),當前結果和預期結果。 – jarlh

回答

0

嘗試用內部聯接

 SELECT sum(pur.psum) - sum(sca.ssum) as quantities, p.scale, st.name , st.id FROM 
stuff st INNER JOIN 
    (SELECT sum(p.quantity) as psum,p.scale,p.stuff_id FROM purchase p GROUP BY p.scale,p.stuff_id) pur 
on pur.stuff_id = st.id INNER JOIN 
    (SELECT sum(s.quantity) as ssum,s.scale,s.stuff_id FROM scale s GROUP BY s.scale,s.stuff_id) sca 
on sca.scale=pur.scale and sca.stuff_id=pur.stuff_id group by pur.scale, st.name ORDER BY st.name , pur.scale; 
+0

你可以試試這個,讓我知道 –

+0

你的查詢返回相同的預覽結果:( –

+0

請參閱我的表格截圖數據請 –