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;