Получить общую сумму 3 столбца и несколько записей из второй таблицы - PullRequest
0 голосов
/ 09 марта 2019

Утро,

У меня есть 2 таблицы с отношением box_id.

Первая таблица структурирована как:

box_id    | box_name | length | width | depth
---------------------------------------------
1         | box_1    | 30     | 30    | 20

В нем есть данные о ящике для хранения, т.е. имя, ширина, длина глубина и т. д.

На втором столе есть список того, что в этой коробке) ...

id    | bid | product_name | prod_length | prod_width | prod_height
-------------------------------------------------------------------
1     | 1    | phone case  | 12          | 6          | 2 
2     | 1    | watch       | 8           | 8          | 7        
3     | 1    | perfume     | 16          | 10         | 14 

Используя SQL, я собираюсь получить подробную информацию о блоке, включая (длина * ширина * глубина / 10) этого блока, чтобы получить его общий объем, а также общий объем, потребляемый продуктами в коробка.

Результаты

box_id | box_name | volume  | volume remaining
----------------------------------------------
1      | box_1    | 1800 cm3 | xyz cm3

Вот SQL, который у меня есть ..

select box_name, width, length, depth, (width * length * depth / 10) AS totalVolume from storage...

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

Привет

1 Ответ

0 голосов
/ 09 марта 2019

Объем содержимого будет получен из запроса, подобного этому:

select bid, sum(prod_lengt * prod_width * prod_height) as volume
from inventory
group by bid;

Вы можете использовать join для сравнения объемов:

select b.*,
       (length * width * height) as box_volume,
       bi.volume as inventory_volume
from boxes b left join
     (select bid, sum(prod_length * prod_width * prod_height) as volume
      from inventory
      group by bid
     ) bi
     on bi.bid = b.id;

Вы можете вычесть два или взять соотношение. Но не переоценивайте результаты. Трудно определить, сколько «инвентаря» может поместиться в «коробку», основываясь на размерах. Сумма томов недостаточна для ответа на этот вопрос.

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