Создание пользовательского стола из одного стола - PullRequest
0 голосов
/ 10 ноября 2018

Моя таблица называется Storage_Tot, в которой есть дата, tagid, значение компонентов.

Ниже приведены две таблицы (таблица A и таблица B), которые я создал с помощью SQL-запроса. По сути, я выполнил один и тот же запрос с другим tagid с той же таблицей Storage_Tot Я хотел бы объединить таблицы A и B, а также добавить третий столбец, который представляет собой сумму значений таблицы A и таблицы B (таблица C).

Таблица A (Левый стол) Таблица B (Правый стол)

введите описание изображения здесь

Вот пример запроса, который я написал для двух таблиц.

введите описание изображения здесь

Вот так я бы хотел, чтобы мой финальный стол выглядел так. В качестве первого шага я пытался просто объединить значения таблицы A и таблицы B и после этого сосредоточиться на арифметическом аспекте.

введите описание изображения здесь

Вот запрос SQL при комбинировании двух таблиц, но он не работает введите описание изображения здесь

_______________________________________ APPEND

Так как я не смог опубликовать ответ под вопросом, после реализации вашего предложения я получаю сообщение об ошибке. введите описание изображения здесь

Вот так выглядит запрос, когда он сидит, и кажется, что он не такой, как Storage_Tot.TagID = 106

введите описание изображения здесь

Ответы [ 2 ]

0 голосов
/ 10 ноября 2018

@ landru27: Большое спасибо за вашу помощь. Я не знаю, как я пропустил это из / где синтаксис. Во всяком случае, я принял ваше руководство и должен был внести незначительные изменения, и код выполнялся. Ниже приведен окончательный код, который я буду использовать для моего запроса.

введите описание изображения здесь

0 голосов
/ 10 ноября 2018

Я полагаю, что вы запрашиваете (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);

Часть этого - догадки, потому что вы не предоставили полную информацию в своем вопросе.Но, надеюсь, вы сможете увидеть, что происходит: подзапросы таким образом «создают» то, что вы называете двумя таблицами, показанными на вашем первом изображении.

Теперь, чтобы добавить итог, просто добавьте вычисляемый столбецна приведенный выше запрос:

SELECT
    tblA.date, tblA.value, tblB.value, tblA.value + tblB.value AS total_value

Я не проверял ничего из этого в экземпляре MySQL, но я уверен, что синтаксис для MySQL правильный.Возможно, вам придется внести небольшие корректировки для опечаток. .Я проверил приведенный выше синтаксис через SQL Fiddle.Конечно, вам необходимо указать, что на самом деле TABLEA_TAGID и TABLEB_TAGID.

Существует также множество учебных пособий и ссылок для использования JOIN в режиме онлайн.Существуют различные типы JOIN, и здесь я показываю только один вид.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...