我的表称为Storage_Tot,它具有日期,标记ID,值组件。
下面是我使用SQL查询创建的两个表(表A和表B)。实际上,我使用相同的表'Storage_Tot)运行了具有不同tagid的相同查询。我想合并表A和B,并添加第三列,这是表A和表B(表C)的值之和。
表A(左表)表B(右表)
这是我为两个表编写的示例查询。
这就是我希望决赛桌看起来像的样子。第一步,我试图将表A和表B的值组合在一起,然后重点介绍算术方面。
这是合并两个表时的SQL查询,但它不起作用 enter image description here
_______________________________________附录
由于我无法在回答问题下发帖,因此在实施您的建议后,这里是我得到的错误。 enter image description here
这是查询的外观,看起来不像Storage_Tot.TagID = 106
答案 0 :(得分:0)
我相信您要的是(1)JOIN
和(2)计算列。
这是JOIN
的基本概念:
SELECT
tblA.date, tblA.value, tblB.value
FROM
(SELECT * FROM Storage_Tot WHERE tagid = 'TABLEA_TAGID') tblA
INNER JOIN
(SELECT * FROM Storage_Tot WHERE tagid = 'TABLEB_TAGID') tblB
ON (tblA.date = tblB.date);
其中有些是猜测,因为您在问题中didn't provide complete details。但是希望您能看到发生了什么:子查询以一种“创建”您正在调用的方式调用了第一张图中显示的两个表。
现在,要添加总计,只需将计算列添加到上述查询中即可:
SELECT
tblA.date, tblA.value, tblB.value, tblA.value + tblB.value AS total_value
我尚未在MySQL实例中对此进行任何验证,但我相信我的语法正确无误。您可能需要对错别字进行小调整。。我已经通过SQL Fiddle验证了以上语法。当然,您需要填写TABLEA_TAGID
和TABLEB_TAGID
的真实含义。
还有许多在线使用JOIN
的教程和参考。 JOIN
种类繁多,在这里只显示一种。
答案 1 :(得分:0)
@ landru27:非常感谢您的帮助。我不知道如何从/哪里语法中错过它。无论如何,我已按您的指示进行了更改,并执行了代码。 下面是我将用于查询的最终代码。