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!