从一个表制作一个自定义表

时间:2018-11-09 23:47:09

标签: mysql sql

我的表称为Storage_Tot,它具有日期,标记ID,值组件。

下面是我使用SQL查询创建的两个表(表A和表B)。实际上,我使用相同的表'Storage_Tot)运行了具有不同tagid的相同查询。我想合并表A和B,并添加第三列,这是表A和表B(表C)的值之和。

表A(左表)表B(右表)

enter image description here

这是我为两个表编写的示例查询。

enter image description here

这就是我希望决赛桌看起来像的样子。第一步,我试图将表A和表B的值组合在一起,然后重点介绍算术方面。

enter image description here

这是合并两个表时的SQL查询,但它不起作用 enter image description here

_______________________________________附录

由于我无法在回答问题下发帖,因此在实施您的建议后,这里是我得到的错误。 enter image description here

这是查询的外观,看起来不像Storage_Tot.TagID = 106

enter image description here

2 个答案:

答案 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_TAGIDTABLEB_TAGID的真实含义。

还有许多在线使用JOIN的教程和参考。 JOIN种类繁多,在这里只显示一种。

答案 1 :(得分:0)

@ landru27:非常感谢您的帮助。我不知道如何从/哪里语法中错过它。无论如何,我已按您的指示进行了更改,并执行了代码。 下面是我将用于查询的最终代码。

enter image description here