Sql 查找两个不同表中两列之和之间的差异

Sql 查找两个不同表中两列之和之间的差异,sql,oracle,Sql,Oracle,我有以下两个以银行为公共列的表格: Table1: id amt bank 1 100 121 Table2: idnum amount vendor 12 50 121 我希望查询得到table1.amt和table2.amount之和之间的差值 你能给我介绍一下吗。试试这个: with t1 as (select sum(amt) s, bank from table1 group by bank), t

我有以下两个以银行为公共列的表格:

Table1: id    amt    bank
         1    100    121 

Table2: idnum amount vendor
         12    50    121
我希望查询得到table1.amt和table2.amount之和之间的差值

你能给我介绍一下吗。

试试这个:

with t1 as (select sum(amt) s, bank from table1 group by bank),
     t2 as (select sum(amount) s, vendor from table2 group by vendor)
select t1.bank, t1.s - t2.s from ti inner join t2 on (t1.bank = t2.vendor);

在“with”条款中,我们为每个
银行
/
供应商
准备总和,然后将它们相加并减去。问题是,您是否需要使用子查询进行
内部联接
或某些
外部联接

,并最终根据唯一字段获得差异:

SELECT A.Amount1 - B.Amount2 , bank
FROM 
(
  SELECT SUM(amt) Amount1,bank
  FROM Table1
  GROUP BY bank
)A, 
(
  SELECT SUM(amount) Amount2,vendor
  FROM Table2
  GROUP BY bank
)B
WHERE A.bank = B.vendor

这个问题我不清楚。 根据您的示例,您可能需要:

SELECT   (SELECT SUM(AMT)
            FROM T1
           WHERE     BANK = '100.00'
                 AND CLRDTE IS NULL)
       - (SELECT SUM(AMOUNT / 100)
            FROM T2
           WHERE     ACCT = '010000'
                 AND CLEARDATE = 0)
  FROM DUAL

你还有其他要求吗?请提供您为此尝试过的。除此之外,没有其他要求。欢迎使用SO。问题不太清楚,请提供一些样本数据和期望的结果,并张贴您的尝试。在这里你会发现一些有用的东西,如前所述,请通过发布样本数据和所需结果来澄清你的需求。事实上,这个问题可能有不止一个含义。此外,请发布您迄今为止尝试的内容。我收到一个错误:ORA-00904:“B”。“金额”:下面查询中的标识符无效示例:表1:从T1中选择金额,其中银行='100.00',CLRDTE为空;表2:从T2中选择总和(金额/100),其中账户=010000,清算日期=0;我想要两个结果之间的差异。示例:表1:从T1中选择总和(AMT),其中BANK='100.00',CLRDTE为NULL;表2:从T2中选择总和(金额/100),其中账户=010000,清算日期=0;我想要两个结果之间的差异。我的查询有什么问题?这只是使用了两个查询并使之不同。如果你需要一些不同的东西,请编辑你的问题,发布一些样本数据和期望的结果。完美。。。我在你的帮助下得到了它。谢谢