使用PHP / MySQL,Javascript和Json,基于一个月和不同年份的销售额生成组合图

问题描述 投票:-2回答:1

    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>  
    <script type="text/javascript">  
    google.charts.load('current', {'packages':['corechart']});
    google.charts.setOnLoadCallback(drawVisualization);

      function drawVisualization() {
                var data = google.visualization.arrayToDataTable([  
                          ['Username', 'Total Sales'],  
                          <?php  
                          while($sub_row = mysqli_fetch_array($result2))  
                          {  
                               echo "['".$sub_row["date"]."', ".$sub_row["number"]."],";  
                          }  
                          ?>  
                     ]);  
                 var options = {
          title : 'Month & Yearly Total Sales Values',
          vAxis: {title: 'Total Sales'},
          hAxis: {title: 'Month & Year'},
          seriesType: 'bars',
          series: {5: {type: 'line'}}
        };
                var chart = new google.visualization.ComboChart(document.getElementById('Salesmans'));  
                chart.draw(data, options);  
           }  
           </script>  
<?php
 $query2 = "SELECT DATE_FORMAT(order_datetime,'%m-%Y') as date, SUM(order_total_after_tax) as number FROM tbl_order where status='Confirmed' and type='PROFORMA INVOICE' GROUP BY DATE_FORMAT(order_datetime,'%m-%Y')";  
    $result2 = mysqli_query($con, $query2);
    ?>
    
    
    
    <div id="Salesmans" style="width: 650px; height: 500px;"></div>
    
    
    
    

Result of My Code Like Month& Year Total Sales By Bar Chart

**我需要类似组合图的结果**组合图像**即将在2019年1月(销售),2020年1月(销售)**在2018年1月(销售)**像这样在组合图上有人给我个主意]

javascript php mysql json google-visualization
1个回答
0
投票

为了获得所需的图表,数据表结构将需要如下...

['Month', '2018 Sales', '2019 Sales', '2020 Sales'],
['Jan', 1000, 1200, 1400],
['Feb', 1000, 1200, 1400],
...

尝试使用以下sql以获得上述格式...

SELECT
  DATE_FORMAT(order_datetime,'%m') as date,
  SUM(case when year(order_datetime) = 2018 then order_total_after_tax else 0 end) as 2018,
  SUM(case when year(order_datetime) = 2019 then order_total_after_tax else 0 end) as 2019,
  SUM(case when year(order_datetime) = 2020 then order_total_after_tax else 0 end) as 2020
FROM
  tbl_order where status='Confirmed'
AND
  type='PROFORMA INVOICE'
GROUP BY
  DATE_FORMAT(order_datetime,'%m')
© www.soinside.com 2019 - 2024. All rights reserved.