2012-07-02 33 views
0

得到了一個不同的表,它完美地工作(並獲得從這個論壇也)運行一個總和的查詢從列中的兩個和:MySQL查詢,其中包括在其他表

SELECT 
    R.REP_ID as repid, R.REP_DESBREV as repdesc, 
    IFNULL(SUM(RD.REPDATA_CANT), 0) as cant 
FROM 
    REPUESTOS R 
LEFT JOIN 
    REP_DATA RD, ON RD.REPDATA_REPID = R.REP_ID 
GROUP BY 
    RD.REPDATA_REPID 

現在,事情是我想補充一點,獲得總庫存一個額外的列(類似

IFNULL(SUM(I.INV_CANT), 0) as inv) 
FROM table INVENTARIO I 
WHERE I.INV_REPID = R.REP_ID 

這個值可以通過的連接方式獲得,在我們得到了工作的第一個語句完全相同的方式,但我還沒有找到在一個查詢中包含兩個SUMS的方法。

任何想法?謝謝!

回答

0

嘗試此查詢例如

select 
t1.id, 
ifnull(sum(t1.my_column),0) as Sum1, 
ifnull(other.sum,0) as Sum2 
from table as t1 
left join (select id , sum(other_table_column) from other_table group by id) as other 
on t1.id = other.id 
group by t1.id 
+0

Raheel,感謝您的快速回答。在你的例子中,你的一個總和屬於同一個t1表,在我的要求中,兩個總和屬於兩個不同的表,因此查詢總共包括三個表...... – user1494526

+0

@ user1494526有兩個不同表的總和, t1.my_column和其他.sum – jcho360

+0

這只是在加入使用另一個表中,並在選擇調用它的例子 –

0

我只是執行以下語句:

SELECT 
    R.REP_PARNUM as parnum, 
    R.REP_ID as repid, 
    R.REP_DESBREV as repdesc, 
    IFNULL(SUM(RD.REPDATA_CANT),0) as cant, 
    IFNULL(SUM(I.INV_CANT),0) as intt 
FROM REPUESTOS R 
LEFT JOIN REP_DATA RD ON RD.REPDATA_REPID = R.REP_ID 
LEFT JOIN INVENTARIO I ON I.INV_REPID = R.REP_ID 
GROUP BY R.REP_PARNUM 

它實際運行,但問題是,它給了我一些奇怪的值。例如,第一和列(REPDATA_CANT)中的一些值用-3表示,即如果實際結果是20,則它顯示17等等。在第二個總和列(INV_CANT)中,它實際上是MULTIPLIES(在某些行中,並非全部)值爲3.非常奇怪的行爲,你知道爲什麼嗎?