【问题标题】:SQL Simple Subtraction QuerySQL 简单减法查询
【发布时间】:2014-05-20 08:25:42
【问题描述】:

我有一个数据库。它包含 2 个表格。让我称它们为表 A 和表 B。

表 A 内容:

  1. 日期
  2. 供应商名称
  3. 货物名称
  4. 交付的货物数量,简单地说是成分 A(数值)

表 B 内容:

  1. 生产日期
  2. 产品名称
  3. 成分A

我真正想要的是:

查询表 A 第 4 列减去(减法)表 B 第 3 列。

补充说明:

我一直在向一位友好的程序员提出这个问题。他建议我参加 w3schools.com 的在线课程。他还假设减法应该属于某个 'Join' 函数。

我也一直在谷歌搜索和搜索 Stackoverflow。没有结果。尽管如此,我还是需要提一下,我可能找不到结果,因为我的英语很差。

如果我的英语很差并且我的问题是 / 措辞不佳,我想真诚地道歉。英语不是我的母语。

如果无法获得直接帮助,我愿意并渴望学习。如果您有任何资源可以让我了解与数据库相关的查询(例如 MS Access 或 OOo Base)中的简单数学知识,请随时向我推荐优质的信息网站和/或课程。

谨向您致以诚挚的问候 机灵

系统信息:

  • Windows 7 - 64 位 - 家庭版及其所有更新
  • OpenOffice.org 3.3.0 - OOO330m20(内部版本:9567)

未将 OOo 升级到最新版本的原因:与以前的脚本软件的兼容性问题。而且工作时间太“少”,无法解决 4.0 版及更高版本的这些问题。

【问题讨论】:

  • 这些表是如何连接/连接的,以商品的名义?此名称在表 A 和/或表 B 中是唯一的吗?
  • 我对好的、产品、成分有点困惑。这都一样吗?一张表告诉我产品的所有交付情况,另一张表告诉我所有费用,但交付的费用没有关系,只有哪个产品?看起来很奇怪。

标签: sql subtraction


【解决方案1】:

你可以只在 SQL 中使用数学

SELECT 
    (a.column_4 - b.column_3) as subtracted_value 
FROM 
    TABLE_A as a 
JOIN 
    TABLE_B as b ON a.id = b.table_a_id

“subtracted_value”应该是表a的第4列减去表b的第3列的值。您需要使用 id 连接表,以便查看 TABLE A 的哪一行属于 TABLE B 的哪一行。

在此示例中,我将表 A 中的 id 称为“id”,并将表 B 中指向表 A 的 id 的指针称为“table_a_id”。 因此,TABLE A 中的“id”和 TABLE B 中的“table_a_id”在属于同一行时需要相等。

值得一看: http://www.w3schools.com/sql/sql_join.asp

【讨论】:

  • 这会导致完全不受约束的 CROSS JOIN,OP 可能不希望这样 :-)
  • 是的,对不起,我已经监督了这一点。他需要先 JOIN 两张表。
  • 我编辑了我的答案,我相信如果 OP 确实将表格编辑为需要满足的要求,这应该可以工作。
【解决方案2】:

您是否尝试使用 SQL 查询来执行此操作?基于以下内容的东西怎么样: SELECT (SELECT COLUMN4 FROM tableA) - (SELECT COLUMN3 FROM tableB)

【讨论】:

  • 如果每个表中有超过一行,这将失败:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-21
  • 1970-01-01
  • 2010-12-03
  • 2015-12-20
  • 1970-01-01
相关资源
最近更新 更多