Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So berechnen Sie die Marge in MySQL

Es ist wichtig, den Gewinn für jedes Unternehmen zu berechnen. Wenn Ihre Website oder Ihr Online-Shop auf MySQL läuft, können Sie die Marge ganz einfach in MySQL berechnen. In diesem Artikel sehen wir uns an, wie man die Marge in MySQL berechnet, die Marge für jedes Produkt berechnet und auch die tägliche Marge berechnet.


So berechnen Sie die Marge in MySQL

Angenommen, Sie haben zwei Tabellen Käufe (Bestell-ID, Produkt-ID, Menge, Kosten_Preis, Bestelldatum ) und Verkäufe (Bestell-ID, Produkt-ID, Menge, Verkaufspreis, Bestelldatum) die Details zu den Kauf- und Verkaufsinformationen jedes Produkts enthalten.

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

Wir werden diese Tabellen verwenden, um die Marge in MySQL zu berechnen. Hier ist die Margenformel.

Gewinnspanne =(verkaufte Menge*Verkaufspreis – gekaufte Menge*Einstandspreis )/verkaufte Menge*Verkaufspreis

Sobald wir den Gesamtumsatz und die Gesamtkosten erhalten haben, können Sie die obige Formel gemäß Ihren Anforderungen ändern, um Bruttomarge, Nettomarge usw. zu berechnen.


Gesamtmarge in MySQL berechnen

Hier ist die SQL-Abfrage zur Berechnung der Gesamtgewinnspanne.

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

Sehen wir uns die obige Abfrage im Detail an.

Wir berechnen Gesamtkosten und Gesamtumsatz separat mithilfe von Unterabfragen

select sum(quantity*cost_price) as total_cost from purchases

und

select sum(quantity*selling_price) as total_sales from sales

und verwenden Sie dann das Ergebnis dieser Unterabfragen, um die Gesamtgewinnspanne zu berechnen.

Bonuslektüre:So erhalten Sie mehrere Zählungen in MySQL


Produktmarge in MySQL berechnen

Hier ist die SQL-Abfrage zur Berechnung der Gewinnspanne für jedes Produkt.

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 der obigen Abfrage verwenden wir die folgenden zwei Unterabfragen, um Verkäufe und Kosten für jedes Produkt separat zu berechnen.

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

und

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

Dann verbinden wir das Ergebnis dieser beiden Unterabfragen basierend auf product_id Spalte, um die Gesamtgewinnspanne für jedes Produkt zu berechnen.


Tagesmarge in MySQL berechnen

Auf ähnliche Weise können Sie die tägliche Gewinnmarge mit der folgenden SQL-Abfrage berechnen.

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 der obigen Abfrage verwenden wir die folgenden zwei Unterabfragen, um Verkäufe und Kosten für jeden Tag separat zu berechnen.

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

und

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

Dann verbinden wir das Ergebnis dieser beiden Unterabfragen basierend auf order_date Spalte, um die Gesamtmarge für jeden Tag zu berechnen.


Marge in Ubiq berechnen

Das Ubiq Reporting Tool unterstützt alle oben genannten SQL-Abfragen und macht es einfach, SQL-Ergebnisse auf unterschiedliche Weise zu visualisieren. Es ermöglicht Ihnen auch, Dashboards und Diagramme aus MySQL-Daten zu erstellen. Hier ist die SQL-Abfrage zur täglichen Berechnung der Margin in Ubiq.

Nachdem Sie die Abfrage ausgeführt haben, können Sie einfach auf einen Visualisierungstyp klicken, um das Ergebnis in einem Diagramm darzustellen.

Benötigen Sie ein Reporting-Tool für MySQL? Ubiq macht es einfach, Daten innerhalb von Minuten zu visualisieren und in Echtzeit-Dashboards zu überwachen. Probieren Sie es noch heute aus!