0

从不同的表中得到一个运行总和的查询,它运行良好(并且也从这个论坛获得):

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 的方法。

有任何想法吗?谢谢!

4

2 回答 2

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
于 2012-07-02T15:08:03.767 回答
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

于 2012-07-03T14:13:50.170 回答