Вопрос для самообучения mysql, Как использовать 2 таблицы для создания 3-й таблицы, которая использует информацию из 2 исходных таблиц

Я задал более ранний вопрос, который помог мне создать эту таблицу ниже Как получить количество уникальных SKU за дату в таблице в mysql (вопрос для самообучения)

SKU, COUNT, DateSold
12,     2,      1-Jan-08 
11,     1,      1-Jan-08 
11,     2,      2-Jan-08 
11,     1,      3-Jan-08 
13,     1,      3-Jan-08 
11,     1,      4-Jan-08 
13,     1,      5-Jan-08 

Используя эту существующую таблицу выше и

Таблица цен SKU ниже

SKU, PRICE
11,     5.00
12,    10.00
13,    15.00

Теперь вопрос в том, как я могу использовать эти 2 таблицы для создания итогов за каждый день, не делая это вручную. Ниже представлена ​​желаемая ТАБЛИЦА.

Day,       Total
1-Jan-08,    25.00
2-Jan-08,    10.00
3-Jan-08,    20.00
4-Jan-08,    05.00
5-Jan-08,    15.00

У меня есть что-то вроде этого в файле Excel, который я создал (сводная таблица), но я надеюсь, что mysql поможет мне сделать это эффективно и быстрее. Опять же, я новичок в этом, и это помогло бы мне понять sql. Это не задание, я снова пытаюсь улучшить свои навыки.

Спасибо

Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
0
42
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Предполагая, что вы начинаете с данных о продажах из исходного вопроса, вы можете получить желаемые результаты, перенеся эту таблицу в таблицу JOIN (чтобы получить цену каждого предмета), а затем просто суммируя price каждого проданного предмета (поскольку есть только один элемент в строке). Мы PRICE, чтобы получать результаты ежедневно:

SELECT s.DateSold AS Day, SUM(p.PRICE) AS Total
FROM sales s
JOIN price p ON p.SKU = s.SKU
GROUP BY Day

Если вы хотите начать с уже агрегированных данных, вам следует несколько изменить запрос. В этом случае у вас есть GROUP BY Day предметов, продаваемых каждый день, поэтому вам нужно COUNT, которые умножают на цену предмета.

SELECT d.DateSold AS Day, SUM(d.COUNT * p.PRICE) AS Total
FROM daysales d
JOIN price p ON p.SKU = d.SKU
GROUP BY Day

Вывод (для обоих запросов):

Day         Total
1-Jan-08    25
2-Jan-08    10
3-Jan-08    20
4-Jan-08    5
5-Jan-08    15

Демо на dbfiddle

Спасибо за это, я попробовал оба способа, и он работает! Спасибо, что показали мне и dbfiddle. Прекрасный ответ с ясностью!

AlphaBin 14.01.2019 05:08

@AlphaBin, не беспокойтесь, я рад, что вы нашли ответ полезным.

Nick 14.01.2019 05:11

Другие вопросы по теме