【问题标题】:sql - subtract values from different tablessql - 从不同的表中减去值
【发布时间】:2018-04-13 06:59:13
【问题描述】:

我是 sql 新手。我试图从两个表中简单地减去两列。 例如:

Table1 = id, amount, value

Table2 = id, amount

如何在不增加每列总金额的情况下用金额 2 减去金额 1。因为我想在行中查看它.. 这是我迄今为止尝试过的,但仍然失败..

"SELECT ( SELECT amount FROM table1 ) - ( SELECT amount FROM table2 ) AS difference"

顺便问一下,sql有什么办法可以自动生成表或额外的列来查看减法的差异/结果?

谢谢

【问题讨论】:

  • 先加入,再减法
  • select t1.amount - t2.amount from table1 t1 join table2 t2 on t1.id = t2.id

标签: mysql sql


【解决方案1】:

您可以直接对多个列执行操作,并将结果显示在一个新列中,您可以使用as 子句对其进行命名。您可以以类似的方式执行连接以在不同表的两列之间进行操作。为了回答您的问题,以下是 SQL 查询:

SELECT a.id, a.amount-b.amount as Difference FROM table1 a
INNER JOIN table2 b
ON a.id=b.id

【讨论】:

  • A、B、C 等表别名没有多大意义。选择让您了解它是哪个表的别名。对于 table1 和 table2,我会选择 t1 和 t2。 (愚蠢的表名,我知道。)
  • @jarlh 大声笑 .. 当然。这只是一个例子。我们应该为它们命名,这是有道理的。
  • 顺便说一句..我还有一个问题..我们可以将“作为差异”设置为数据库中的新列或新表之一吗??
  • @awang 要将其设置为新列或新表,您必须创建新表或更改某些表。在我看来,您可以为该查询创建一个视图,该视图将返回与查询表相同的结果。要创建视图,请在 select 语句之前添加:“CREATE VIEW Differencerence_view_name as”。希望这会有所帮助
  • 一旦你创建了视图,你可以像这样查询视图:select * from difference_view_name 它会给你结果
【解决方案2】:

要从两个不同的表中减去列值,首先JOIN 表,然后使用SUBTRACT 运算符来获得差异

SELECT t1.id, (t1.amount-t2.amount) as "DIFFERENCE" FROM table1 t1
INNER JOIN table2 t2
ON t1.id = t2.id

有关JOINS的更多信息 SQL JOIN and different types of JOINs

【讨论】:

  • A、B、C 等表别名没有多大意义。选择让您了解它是哪个表的别名。对于 table1 和 table2,我会选择 t1 和 t2。 (愚蠢的表名,我知道。)
  • 顺便说一句..我还有一个问题..我们可以将“作为差异”设置为数据库中的新列或新表之一吗??
猜你喜欢
  • 1970-01-01
  • 2014-05-04
  • 2014-12-22
  • 2022-09-23
  • 2022-08-10
  • 1970-01-01
  • 1970-01-01
  • 2019-06-24
  • 1970-01-01
相关资源
最近更新 更多