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

Нужна помощь, так плохо. Итак, у меня есть 2 таблицы:

  1. транзакции
  2. Распределения

Моя транзакция таблица содержит эти ff. столбцы:

транзакция_id (int), alloc_id (int), month_sold (varchar), amount_sold (int)

My Allocations таблица содержит эти ff. столбцы:

alloc_id (int), item_allocation (int), item_name (varchar)

Я просто хочу отобразить сводку товаров, проданных за месяц и не проданных, а также их распределение. Очень нужна помощь. Заранее спасибо!

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

SELECT transaction.transaction_id, allocations.item_allocation, 
    sum(if (transaction.month_sold = 'JANUARY', quantity_sold,0)) AS JAN, 
    sum(if (transaction.month_sold = 'FEBRUARY', quantity_sold, 0)) AS FEB, 
    sum(if (transaction.month_sold = 'MARCH', quantity_sold, 0)) AS MAR 
FROM transaction 
JOIN allocations ON allocations.alloc_id = transaction.alloc_id 
GROUP BY transaction.month_sold

1 Ответ

0 голосов
/ 17 апреля 2020

Сначала вы должны сгруппировать по alloc_id, а не month_sold.

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

SELECT allocations.alloc_id, 
    sum(if (transaction.month_sold = 'JANUARY', quantity_sold,0)) AS JAN, 
    sum(if (transaction.month_sold = 'FEBRUARY', quantity_sold, 0)) AS FEB, 
    sum(if (transaction.month_sold = 'MARCH', quantity_sold, 0)) AS MAR,
    allocations.item_allocation - SUM(quantity_sold) AS not_sold
FROM transaction 
JOIN allocations ON allocations.alloc_id = transaction.alloc_id 
GROUP BY allocations.alloc_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...