从另一个表中运行一个求和的查询,它完美地运行(并从该论坛获得):
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的方法。
有什么想法吗?谢谢!
答案 0 :(得分: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
答案 1 :(得分: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.非常奇怪的行为,你知道为什么吗?