sql >> Database >  >> RDS >> Mysql

Marge berekenen in MySQL

Het is belangrijk om de winst voor elk bedrijf te berekenen. Draait je website of webshop op MySQL, dan kun je in MySQL eenvoudig de marge berekenen. In dit artikel zullen we bekijken hoe u de marge in MySQL kunt berekenen, de marge voor elk product kunt berekenen en ook de dagelijkse marge kunt berekenen.


Hoe de marge in MySQL te berekenen

Stel dat u twee tabellen heeft aankopen(order_id, product_id, hoeveelheid, kostprijs, besteldatum ) en verkoop(order_id, product_id, hoeveelheid, verkoopprijs, besteldatum) die details bevatten van de aankoop- en verkoopinformatie van elk product.

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 |
+----------+------------+----------+---------------+------------+

We zullen deze tabellen gebruiken om de marge in MySQL te berekenen. Hier is de margeformule.

winstmarge =(verkochte hoeveelheid*verkoopprijs – gekochte hoeveelheid*kostprijs )/verkochte hoeveelheid*verkoopprijs

Zodra we de totale verkoop en totale kosten hebben ontvangen, kunt u de bovenstaande formule aanpassen aan uw vereisten om de brutomarge, nettomarge, enz. te berekenen.


Bereken de totale marge in MySQL

Hier is de SQL-query om de totale winstmarge te berekenen.

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 |
 +--------------+

Laten we de bovenstaande vraag in detail bekijken.

We berekenen de totale kosten en de totale verkoop afzonderlijk met behulp van subquery's

select sum(quantity*cost_price) as total_cost from purchases

en

select sum(quantity*selling_price) as total_sales from sales

en gebruik vervolgens het resultaat van deze subquery's om de totale winstmarge te berekenen.

Lees de bonus :Meerdere tellingen krijgen in MySQL


Bereken productmarge in MySQL

Hier is de SQL-query om de winstmarge voor elk product te berekenen.

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 |
 +------------+--------------+

In de bovenstaande zoekopdracht gebruiken we de volgende twee subquery's om de verkoop en kosten voor elk product afzonderlijk te berekenen.

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

en

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

Vervolgens voegen we het resultaat van deze twee subquery's samen op basis van product_id kolom om de totale winstmarge voor elk product te berekenen.


Bereken dagelijkse marge in MySQL

Op dezelfde manier kunt u de dagelijkse winstmarge berekenen met behulp van de volgende SQL-query.

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 |
 +------------+--------------+

In de bovenstaande query gebruiken we de volgende twee subquery's om de verkoop en kosten voor elke dag afzonderlijk te berekenen.

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

en

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

Vervolgens voegen we het resultaat van deze twee subquery's samen op basis van order_date kolom om de totale marge voor elke dag te berekenen.


Bereken de marge in Ubiq

Ubiq Reporting-tool ondersteunt alle bovenstaande SQL-query's en maakt het gemakkelijk om SQL-resultaten op verschillende manieren te visualiseren. Hiermee kunt u ook dashboards en grafieken maken van MySQL-gegevens. Hier is de SQL-query om de dagelijkse marge in Ubiq te berekenen.

Nadat u de query heeft uitgevoerd, kunt u zelfs eenvoudig op een visualisatietype klikken om het resultaat in een grafiek uit te zetten.

Een rapportagetool voor MySQL nodig? Ubiq maakt het gemakkelijk om gegevens binnen enkele minuten te visualiseren en in realtime dashboards te monitoren. Probeer het vandaag nog!

  1. Hoe GREATEST() werkt in MariaDB

  2. Hoe open je een SDF-bestand (SQL Server Compact Edition)?

  3. Hoe maak je een tijdelijke functie in PostgreSQL?

  4. Laravel:Fout [PDOException]:Kan stuurprogramma niet vinden in PostgreSQL