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;我想要两个结果之间的差异。我的查询有什么问题?这只是使用了两个查询并使之不同。如果你需要一些不同的东西,请编辑你的问题,发布一些样本数据和期望的结果。完美。。。我在你的帮助下得到了它。谢谢