Soubarna Das Ответов: 0

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-запрос для вывода конечной таблицы. Любая помощь/руководство будут оценены. Заранее спасибо.

Что я уже пробовал:

Я попробовал внутреннее соединение, но не понимаю, как делать вычисления.

0 Ответов