Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment calculer la marge dans MySQL

Il est important de calculer le profit pour chaque entreprise. Si votre site Web ou votre boutique en ligne fonctionne sur MySQL, vous pouvez facilement calculer la marge dans MySQL. Dans cet article, nous verrons comment calculer la marge dans MySQL, calculer la marge pour chaque produit et également calculer la marge quotidienne.


Comment calculer la marge dans MySQL

Disons que vous avez deux tables purchases(order_id, product_id, quantity, cost_price, order_date ) et ventes (id_commande, id_produit, quantité, prix_vente, date_commande) qui contiennent des détails sur les informations d'achat et de vente de chaque produit.

mysql> create table purchases(order_id int, 
            product_id int, 
            quantity int, 
            cost_price int, 
            order_date date);

mysql> insert into purchases(order_id, product_id,
      quantity, cost_price, order_date)
      values(1,101,10,30,'2021-01-01'),
      (2,102,15,50,'2021-01-02'),
      (3,101,30,80,'2021-01-03'),
      (4,103,20,35,'2021-01-04'),
      (5,105,10,50,'2021-01-05'),
      (6,104,17,40,'2021-01-06'),
      (7,101,30,45,'2021-01-07'),
      (8,102,60,60,'2021-01-08'),
      (9,110,19,70,'2021-01-09'),
      (10,108,20,80,'2021-01-10');

mysql> select * from purchases;
 +----------+------------+----------+------------+------------+
 | order_id | product_id | quantity | cost_price | order_date |
 +----------+------------+----------+------------+------------+
 |        1 |        101 |       10 |         30 | 2021-01-01 |
 |        2 |        102 |       15 |         50 | 2021-01-02 |
 |        3 |        101 |       30 |         80 | 2021-01-03 |
 |        4 |        103 |       20 |         35 | 2021-01-04 |
 |        5 |        105 |       10 |         50 | 2021-01-05 |
 |        6 |        104 |       17 |         40 | 2021-01-06 |
 |        7 |        101 |       30 |         45 | 2021-01-07 |
 |        8 |        102 |       60 |         60 | 2021-01-08 |
 |        9 |        110 |       19 |         70 | 2021-01-09 |
 |       10 |        108 |       20 |         80 | 2021-01-10 |
 +----------+------------+----------+------------+------------+

mysql> create table sales(order_id int, 
        product_id int, 
        quantity int, 
        selling_price int, 
        order_date date);

mysql> insert into sales(order_id, product_id, 
       quantity, selling_price, order_date)
       values(1,101,8,70,'2021-01-01'),
       (2,102,10,150,'2021-01-02'),
       (3,101,25,280,'2021-01-03'),
       (4,103,20,135,'2021-01-04'),
       (5,105,10,350,'2021-01-05'),
       (6,104,15,140,'2021-01-06'),
       (7,101,20,65,'2021-01-07'),
       (8,102,50,160,'2021-01-08'),
       (9,110,15,120,'2021-01-09'),
       (10,108,15,180,'2021-01-10');

mysql> select * from sales;
+----------+------------+----------+---------------+------------+
| order_id | product_id | quantity | selling_price | order_date |
+----------+------------+----------+---------------+------------+
|        1 |        101 |        8 |            70 | 2021-01-01 |
|        2 |        102 |       10 |           150 | 2021-01-02 |
|        3 |        101 |       25 |           280 | 2021-01-03 |
|        4 |        103 |       20 |           135 | 2021-01-04 |
|        5 |        105 |       10 |           350 | 2021-01-05 |
|        6 |        104 |       15 |           140 | 2021-01-06 |
|        7 |        101 |       20 |            65 | 2021-01-07 |
|        8 |        102 |       50 |           160 | 2021-01-08 |
|        9 |        110 |       15 |           120 | 2021-01-09 |
|       10 |        108 |       15 |           180 | 2021-01-10 |
+----------+------------+----------+---------------+------------+

Nous utiliserons ces tables pour calculer la marge dans MySQL. Voici la formule de la marge.

marge bénéficiaire =(quantité vendue*prix de vente – quantité achetée*prix de revient )/quantité vendue*prix de vente

Une fois que nous obtenons le total des ventes et le coût total, vous pouvez modifier la formule ci-dessus selon vos besoins pour calculer la marge brute, la marge nette, etc.


Calculer la marge totale dans MySQL

Voici la requête SQL pour calculer la marge bénéficiaire totale.

mysql> select (total_sales-total_cost)*100/total_sales as total_margin 
      from
      (select sum(quantity*cost_price) as total_cost 
         from purchases) as total_purchases,
      (select sum(quantity*selling_price) as total_sales 
         from sales) as total_sales;
 +--------------+
 | total_margin |
 +--------------+
 |      57.6059 |
 +--------------+

Examinons la requête ci-dessus en détail.

Nous calculons le coût total et les ventes totales séparément à l'aide de sous-requêtes

select sum(quantity*cost_price) as total_cost from purchases

et

select sum(quantity*selling_price) as total_sales from sales

puis utilisez le résultat de ces sous-requêtes pour calculer la marge bénéficiaire totale.

Lecture bonus :Comment obtenir plusieurs comptes dans MySQL


Calculer la marge du produit dans MySQL

Voici la requête SQL pour calculer la marge bénéficiaire pour chaque produit.

mysql> select total_purchases.product_id,
      (total_sales-total_cost)*100/total_sales as total_margin 
      from
      (select product_id,sum(quantity*cost_price) as total_cost          
          from purchases 
          group by product_id) as total_purchases,
      (select product_id,sum(quantity*selling_price) as total_sales 
          from sales 
          group by product_id) as total_sales 
          where total_purchases.product_id=total_sales.product_id;
 +------------+--------------+
 | product_id | total_margin |
 +------------+--------------+
 |        101 |      54.2889 |
 |        102 |      54.2105 |
 |        103 |      74.0741 |
 |        104 |      67.6190 |
 |        105 |      85.7143 |
 |        108 |      40.7407 |
 |        110 |      26.1111 |
 +------------+--------------+

Dans la requête ci-dessus, nous utilisons les deux sous-requêtes suivantes pour calculer séparément les ventes et le coût de chaque produit.

select product_id,sum(quantity*cost_price) as total_cost          
   from purchases group by product_id

et

select product_id,sum(quantity*selling_price) as total_sales 
   from sales group by product_id

Ensuite, nous joignons le résultat de ces deux sous-requêtes basées sur product_id colonne pour calculer la marge bénéficiaire totale pour chaque produit.


Calculer la marge quotidienne dans MySQL

De même, vous pouvez calculer la marge bénéficiaire quotidienne à l'aide de la requête SQL suivante.

mysql> select total_purchases.order_date,(total_sales-total_cost)*100/total_sales as total_margin 
     from
      (select date(order_date) as order_date,
        sum(quantity*cost_price) as total_cost 
        from purchases group by date(order_date)
      ) as total_purchases,   
      (select date(order_date) as order_date,
        sum(quantity*selling_price) as total_sales 
        from sales group by date(order_date)
      ) as total_sales 
    where total_purchases.order_date=total_sales.order_date;
 +------------+--------------+
 | order_date | total_margin |
 +------------+--------------+
 | 2021-01-01 |      46.4286 |
 | 2021-01-02 |      50.0000 |
 | 2021-01-03 |      65.7143 |
 | 2021-01-04 |      74.0741 |
 | 2021-01-05 |      85.7143 |
 | 2021-01-06 |      67.6190 |
 | 2021-01-07 |      -3.8462 |
 | 2021-01-08 |      55.0000 |
 | 2021-01-09 |      26.1111 |
 | 2021-01-10 |      40.7407 |
 +------------+--------------+

Dans la requête ci-dessus, nous utilisons les deux sous-requêtes suivantes pour calculer séparément les ventes et le coût pour chaque jour.

select date(order_date) as order_date,sum(quantity*cost_price) as total_cost 
from purchases group by date(order_date)

et

select date(order_date) as order_date,sum(quantity*selling_price) as total_sales 
from sales group by date(order_date)

Ensuite, nous joignons le résultat de ces deux sous-requêtes en fonction de order_date colonne pour calculer la marge totale pour chaque jour.


Calculer la marge dans Ubiq

L'outil Ubiq Reporting prend en charge toutes les requêtes SQL ci-dessus et facilite la visualisation des résultats SQL de différentes manières. Il vous permet également de créer des tableaux de bord et des graphiques à partir de données MySQL. Voici la requête SQL pour calculer quotidiennement la marge dans Ubiq.

En fait, après avoir exécuté la requête, vous pouvez simplement cliquer sur un type de visualisation pour tracer le résultat dans un graphique.

Besoin d'un outil de reporting pour MySQL ? Ubiq permet de visualiser facilement les données en quelques minutes et de les surveiller dans des tableaux de bord en temps réel. Essayez-le aujourd'hui !