Много пъти ще трябва да сравнявате продажбите на продукти по месеци, рамо до рамо, за да определите как се справят. Ето SQL заявка за сравняване на продажбите на продукти по месеци, ако данните ви се съхраняват в MySQL/PostgreSQL/SQL Server бази данни.
SQL заявка за сравняване на продажбите на продукти по месеци
Да приемем, че имате таблица sales(order_date, product, sale) който съдържа ежедневни продажби на всички ваши продукти.
mysql> create table sales(product varchar(255),order_date date,sale int); mysql> insert into sales values('Pen','2020-01-01',20),('Paper','2020-01-02',25), ('Paper','2020-01-03',15),('Pen','2020-01-04',30),('Paper','2020-01-05',20) ...; mysql> select * from sales; +---------+------------+------+ | product | order_date | sale | +---------+------------+------+ | Pen | 2020-01-01 | 20 | | Paper | 2020-01-02 | 25 | | Paper | 2020-01-03 | 15 | | Pen | 2020-01-04 | 30 | | Pen | 2020-01-05 | 20 | | ... | ... | ...| +---------+------------+------+
SQL заявка за сравняване на продажбите на продукти по месеци
В повечето случаи ще имате редове за продажби за всичките си продукти един под друг, в отделни редове, вместо отделни колони. Ако искате да сравните продажбите на продукти по месеци, трябва да завъртите тези данни по продукт колона.
Ето заявката за завъртане на вашата таблица за продажби по продукт колона. Ще го разгледаме подробно
mysql> SELECT date_format(order_date,'%b-%y') as order_date, sum(IF(product='Pen', sale, NULL)) AS Pen, sum(IF(product='Paper', sale, NULL)) AS Paper FROM sales GROUP BY year(order_date),month(order_date),date_format(order_date,'%b-%y') ; +------------+------+-------+ | order_date | Pen | Paper | +------------+------+-------+ | Jan-20 | 200 | 320 | | Feb-20 | 250 | 220 | | Mar-20 | 230 | 290 | | Apr-20 | 190 | 210 | | May-20 | 210 | 230 | | Jun-20 | 320 | 120 | | Jul-20 | 330 | 220 | | Aug-20 | 210 | 260 | | Sep-20 | 120 | 220 | | Oct-20 | 280 | 120 | | Nov-20 | 290 | 280 | | Dec-20 | 200 | 320 | +------------+------+-------+
В горната заявка използваме функция DATE_FORMAT , за да получим имена на месеци от order_date колона. Освен това използваме IF оператор за създаване на обобщена таблица по продукт колона. В този случай за всеки ред операторът IF ще провери стойността на колоната на продукта и ще добави стойността за продажба към колона с етикет „Химикалка“ или „Хартия“ в зависимост от името на продукта. Ние също така ГРУПИРАМЕ ПО име на месец, за да получаваме месечни продажби на продукти от ежедневни поръчки.
След като изчислите месечните продажби на продукт, можете да използвате инструмент за диаграми, за да го начертаете на линейна диаграма, както е показано по-долу. Ето пример за линейна диаграма, създадена с Ubiq.
Знаете ли, че можете да създавате централни таблици в Ubiq, като използвате просто плъзгане и пускане?
Ако искате да създавате диаграми, табла и отчети от MySQL/PostgreSQL/SQL Server база данни, можете да опитате Ubiq. Предлагаме 14-дневен безплатен пробен период.