Mysql запрос для объединения двух таблиц и расчета суммы открытия и закрытия по дате
У меня есть две таблицы данных MySQL.
ТАБЛИЦА ПОЛУЧЕННЫХ ДАННЫХ:
IN_ID | date | product | I | II | T |<br /> ---------------------------------------------<br /> 1 |1.2.16| GG20206 | 200 | 10 | 12 |<br /> 2 |1.2.16| KK20206 | 300 | 5 | 20 |<br /> 3 |2.2.16| GG20206 | 150 | 50 | 25 |<br /> 4 |3.2.16| KK20206 | 50 | 20 | 30 |<br /> 5 |5.2.16| TT20206 | 50 | 20 | 30 |
С помощью SQL-запроса
SELECT date, RIGHT(product, CHAR_LENGTH(product) - 1) AS PRD, SUM(I) AS InI, SUM(II) AS InII, SUM(T) AS InT FROM received_in GROUP BY PRD,dateЯ получаю стол как:
Таблица 2
| date | PRD | InI | InII | InT |<br /> --------------------------------------<br /> |1.2.16| G20206 | 500 | 15 | 32 |<br /> |2.2.16| G20206 | 150 | 50 | 25 |<br /> |3.2.16| K20206 | 50 | 20 | 30 |<br /> |5.2.16| T20206 | 55 | 23 | 45 |
То ПОЛУЧИЛИ-ИЗ Таблица выглядит следующим образом:
OUT_ID | date | product | ex | qty |<br /> --------------------------------------<br /> 1 |1.2.16| G20206 | I | 30 |<br /> 2 |1.2.16| G20206 | I | 75 |<br /> 3 |1.2.16| G20206 | II | 90 |<br /> 4 |3.2.16| K20206 | T | 100 |<br /> 5 |4.2.16| T20206 | T | 25 |
Опять же с помощью SQL запроса
SELECT date, product AS PRD, SUM(IF(ex = 'I', qty, 0)) AS OI, SUM(IF(ex = 'II';, qty, 0)) AS OII, SUM(IF(ex = 'T', qty, 0)) AS OT FROM received_out GROUP BY product,dateЯ получаю таблицу 4 как:
Таблица 4
| date | PRD | OI | OII | OT |<br /> --------------------------------------<br /> |1.2.16| G20206 | 105 | 90 | 0 |<br /> |3.2.16| K20206 | 0 | 0 | 100 |<br /> |4.2.16| T20206 | 0 | 0 | 25 |
Теперь я пытаюсь присоединиться(внутреннее соединение?) Таблица 2 и Таблица 4 и сделайте некоторые вычисления и выведите SQL-запрос, как в следующей таблице:
итоговая таблица
| date | PRD | OpI | OpII | OpT | InI | InII | InT | OI | OII | OT | ClI | ClII | ClT |<br /> --------------------------------------------------------------------------------------------------------<br /> |1.2.16| G20206 | 0 | 0 | 0 | 500 | 15 | 32 | 105 | 90 | 0 | 395 | -75 | 32 |<br /> |2.2.16| G20206 | 395 | -75 | 32 | 150 | 50 | 25 | 0 | 0 | 0 | 545 | -25 | 57 | <br /> |3.2.16| K20206 | 0 | 0 | 0 | 50 | 20 | 30 | 0 | 0 | 100 | 50 | 20 | -70 |<br /> |4.2.16| T20206 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 25 | 0 | 0 | -25 | <br /> |5.2.16| T20206 | 0 | 0 | -25 | 55 | 23 | 45 | 0 | 0 | 0 | 55 | 23 | 20 |
ClI = (OpI+InI) - OI
ClII = (OpII+InII) - OII
КЛТ = (опт+Инт) - от
И бюро информации общественности является ли предыдущая запись В CLI для конкретного ПДР
Точно так же, OpII является ли предыдущая запись ClII и выбирать является ли предыдущая запись ClT для конкретного ПДР.
Я не понимаю, как написать SQL-запрос для вывода конечной таблицы. Любая помощь/руководство будут оценены. Заранее спасибо.
Что я уже пробовал:
Я попробовал внутреннее соединение, но не понимаю, как делать вычисления.