Sql 从两个不同的表中减去总计
我有两个不同的表,每个表都有一个金额相关字段和一个项目代码,每个项目代码有不同的金额 我想为两个表中的每个表添加每个项目代码的数量,然后得到差减法 如果我这样做:Sql 从两个不同的表中减去总计,sql,sql-server,join,sum,left-join,Sql,Sql Server,Join,Sum,Left Join,我有两个不同的表,每个表都有一个金额相关字段和一个项目代码,每个项目代码有不同的金额 我想为两个表中的每个表添加每个项目代码的数量,然后得到差减法 如果我这样做: SELECT codigo, ROUND(SUM(importe),2) AS 'resultado' FROM tabla1 GROUP BY codigo SELECT codigo, ROUND(SUM(importe),2) AS 'resultado' FROM tabla2 GRO
SELECT codigo,
ROUND(SUM(importe),2) AS 'resultado'
FROM tabla1
GROUP BY codigo
SELECT codigo,
ROUND(SUM(importe),2) AS 'resultado'
FROM tabla2
GROUP BY codigo
求和函数工作正常,但当我进行减法运算时,结果不正确:
SELECT t.codigo,
ROUND(SUM(t.importe),2) - ROUND(SUM(d.importe),2) AS 'resultado'
FROM tabla1 t
LEFT JOIN tabla2 d ON t.codigo=d.codigo
GROUP BY t.codigo;
谢谢 试着这样做:
SELECT codigo,
sum(resultado1 - resultado2) AS 'resultado'
FROM (
SELECT codigo,
ROUND(SUM(importe),2) AS 'resultado1',
0 AS 'resultado2'
FROM tabla1
GROUP BY codigo
UNION ALL
SELECT codigo,
0 AS 'resultado1',
ROUND(SUM(importe),2) AS 'resultado2'
FROM tabla2
GROUP BY codigo
) tablatot
GROUP BY codigo
SELECT t.codigo,
ROUND(SUM(ISNULL(t.importe, 0) - ISNULL(D.importe, 0)),2) AS 'resultado'
FROM tabla1 t
LEFT JOIN tabla2 d ON t.codigo=d.codigo
GROUP BY t.codigo;