Reputation: 15
Helo, i have got table daily_report
show columns below
report_id | peak_generation | pdate | plant_id
each row represents the total energy generated by a particular plant (and they are 7 plants per day). i have the data spread sheet for 1 year (jan-dec 2014). i need a query to plot total "average" peak generation per month. what i have been able to plot using fusion chart is the total peak generation per month (ie total peak generation Y axis against the month X axis). how do i get the average for the total plants per month? below is the code for clarity.
<?php
//We've included ../Includes/FusionCharts.php and ../Includes/DBConn.php, which contains
//functions to help us easily embed the charts and connect to a database.
include("Includes/FusionCharts.php");
include("Includes/DBConn.php");
?>
<HTML>
<HEAD>
<TITLE>
FusionCharts Free - Database Example
</TITLE>
<?php
//You need to include the following JS file, if you intend to embed the chart using JavaScript.
//Embedding using JavaScripts avoids the "Click to Activate..." issue in Internet Explorer
//When you make your own charts, make sure that the path to this JS file is correct. Else, you would get JavaScript errors.
?>
<SCRIPT LANGUAGE="Javascript" SRC="js/FusionCharts.js"></SCRIPT>
<style type="text/css">
<!--
body {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
}
.text{
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
}
-->
</style>
</HEAD>
<BODY>
<?php
//In this example, we show how to connect FusionCharts to a database.
//For the sake of ease, we've used an MySQL databases containing two
//tables.
// Connect to the DB
$link = connectToDB();
// Fetch all factory records
//$strQuery = "select * from daily_output";
//$result = mysql_query($strQuery) or die(mysql_error());
//Iterate through each factory
//if ($result) {
//
//Now create a second query to get details for this factory
$strQuery = "select SUM(peak_generation) as TotOutput, MONTHNAME (pdate) as MONTH FROM daily_report WHERE pdate BETWEEN '2015-01-01' AND '2015-12-30' GROUP BY MONTH (pdate)";
$result = mysql_query($strQuery) or die(mysql_error());
$strXML = "<graph caption='Total Peak Electricity Generated ---- 2015 Month by Month' numberSuffix='MW' xAxisName='Month' yAxisName='MegaWatts' decimalPrecision='0' formatNumberScale='0' yaxismaxvalue='5000'>";
while($row = mysql_fetch_array($result)) {
//Generate <set name='..' value='..' />
$strXML .= "<set name = '".$row['MONTH']."' value = '".$row['TotOutput']."' />";
//$strXML .="<set name ='" . datePart("d",$row['DAYS']) . "/" . datePart("m",$row['DAYS']) . "' value='" . $row['TotOutput'] . "'/>";
}
//Finally, close <graph> element
$strXML .= "</graph>";
//Create the chart - Pie 3D Chart with data from $strXML
//echo renderChart("charts/FCF_Column3D.swf", "", $strXML, "FactorySum", 650, 450);
echo renderChart("charts/FCF_Column3D.swf", "", $strXML, "annual_revenue", 1200, 500);
//free the resultset
mysql_free_result($result);
mysql_close($link);
?>
<BR><BR>
<a href='../NoChart.html' target="_blank">Unable to see the chart above?</a>
<H5 ><a href='../default.htm'>« Back to list of examples</a></h5>
<CENTER></CENTER>
</BODY>
</HTML>
Upvotes: 1
Views: 225
Reputation: 11859
Try using AVG()
of mysql with group by month
you should get the output.
you can see a tutorial here:here
Upvotes: 2