Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Нужен совет по sql. Как будет выглядеть структура запроса для такой таблицы. Рисунок прикрепил.

Vasil Zvyagin Ученик (241), закрыт 5 лет назад
Т. е. нужно вывести сколько продано за каждый год какого-то условного товара.
Лучший ответ
クマのプーさん Гуру (4013) 5 лет назад
описание таблицы не прикрепил
В общем виде это суммирование и группировка
select продукт, year(дата) год, sum(количество) from таблица group by продукт, year(дата);
Vasil ZvyaginУченик (241) 5 лет назад
Спасибо за помощь. Я так понимаю если вместо даты поставить 2017, то это даст товары по 2017, но как быть со вторым столбцом для 2018 ?
Шаблон будет такой ?
select продукт,
select (year(2017) год from таблица group by продукт, year(2017)), select (year(2018) год from таблица group by продукт, year(2018) ?
Запрос будет именно такой. То, как вы сформируете внешний вид таблицы - это прикладное программирование. Но если нужны именно эти три года, а не динамическая группировка, то используйте конструкцию SUM(CASE WHEN year(date) = 2017 THEN количество ELSE 0 END) AS Year2017, SUM(CASE WHEN year(date) = 2018 THEN количество ELSE 0 END) AS Year2018, SUM(CASE WHEN year(date) = 2019 THEN количество ELSE 0 END) AS Year2019
Остальные ответы
Сергей Плеханов Мудрец (10340) 5 лет назад
Такая таблица для SQL не подойдет, к ней нормальные запросы не сделаешь. Почитай про нормальные формы данных (именно так и называются).
Похожие вопросы