Соедините 3 таблицы, суммируйте количество из 2 разных таблиц и группируйте по названию материала - PullRequest
0 голосов
/ 02 мая 2020

У меня ниже таблицы

1. Единица материала:

id | Unit_name
1  | Nos.
2  | lts

2. Таблица материалов:

id | Material_name
1  | bricks
2  | Cement

3. Таблица Грн:

id | material_id | qty | unit
1  | 1           | 100 |   1
2  | 2           | 500 |   1
3  | 2           | 100 |   1
4  | 1           | 200 |   1

4. Таблица потребления:

id | material_id | qty | unit
1  | 1           | 50  |   1
2  | 2           | 100 |   1

Ожидаемые результаты, как показано ниже:

Material Name | Unit | Total Qty | Total Consumed Qty | Stock
Bricks        | Nos. | 300       | 50                 | 250
Cement        | Nos. | 600       | 100                | 500

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

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

Я новичок в SQL и пробовал, но застрял на этом этапе и мне нужна помощь.

Select sm.material_name as 'Material Name', mu.unit_name as 'Unit Name' , sum(g.qty) as 'Total Qty' from grn g
JOIN material_table.sm ON g.material_id = sm.id
JOIN material_unit.mu ON g.unit = mu.id

GROUP by material_name

1 Ответ

0 голосов
/ 02 мая 2020


Привет,
,

Select sm.material_name as 'Material_Name', --mu.unit_name as 'Unit Name' ,
 sum(g.qty) as 'Total_Qty', sum(co.total_consumed_qty) as 'Tot_Con_Qty',
 sum(g.qty) - sum(co.total_consumed_qty) as stock
from grn g
JOIN material_table sm ON g.material_id = sm.id
JOIN material_unit mu ON g.unit = mu.id
JOIN consumption co ON co.material_id = g.material_id
GROUP by material_name

Это то, что вы ожидаете? Пожалуйста, проверьте имена столбцов в запросе и попробуйте.

Спасибо

...