簡體   English   中英

包含來自其他表中的列的兩個總和的MySQL查詢

[英]Mysql query that includes TWO sums from columns in other tables

得到了一個查詢,該查詢在另一個表中運行一個總和,該查詢非常有效(也可以從該論壇獲得):

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

可以通過JOIN來獲得該值,這與我們獲得第一個有效語句的方式完全相同,但是我還沒有找到僅在一個查詢中包含BOTH SUMS的方法。

有任何想法嗎? 謝謝!

試試這個查詢例子

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

我剛剛實現了以下語句:

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 )中,它實際上乘以3(在某些行中,不是全部)該值。非常奇怪的行為,您知道為什么嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM