I have 2 tables, t_silm and t_revenue, and I want to sum some both tables with the same condition. This is sample my table:
t_silm
bl - th - tw - total
10 - 2018 - 4 - 100
11 - 2018 - 4 - 200
12 - 2018 - 4 - 300
t_revenue
bl - th - tw - jumlah
10 - 2018 - 4 - 25
11 - 2018 - 4 - 70
12 - 2018 - 4 - 45
I want to get the result:
avg = total / jumlah;
condition = tw =4 and th = 2018;
Please can somebody help me?
$query = "SELECT sum(t_slim.pemakaian_309) as to1, sum(t_revenue.jumlah) as to2, to1/to2 as taverage
from t_slim t1 INNER JOIN t_revenue t2 on t1.tahun=t2.tahun
and t1.triwulan=t2.triwulan WHERE t1.tahun=$tahun and t1.triwulan=$triwulan GROUP BY bulan";
$hasil = mysql_query($query);
$baris = 3;
while ($data = mysql_fetch_array($hasil))
{
$worksheet2->write_string(11, $baris, number_format($data['taverage'],2),$format2);
$baris++;
}
</div>
not sure about what you want.
First you want to sum the column 'total' :
SELECT SUM(total) as total1, th, tw FROM t_silm GROUP BY th,tw
Then you want to sum the column jumlah :
SELECT SUM(jumlah) as total2, th, tw FROM t_silm GROUP BY th,tw
Group this 2 query in 1 query :
SELECT *
FROM
(SELECT SUM(total) as total1, th, tw FROM t_silm GROUP BY th,tw ) as T1
INNER JOIN
(SELECT SUM(jumlah) as total2, th, tw FROM t_silm GROUP BY th,tw) as T2
on T2.tw =T1.tw AND T2.th=T1.th
Now add the condition and the avg :
SELECT T1.th, T1.tw, total1/total2 as avg
FROM
(SELECT SUM(total) as total1, th, tw FROM t_silm GROUP BY th,tw ) as T1
INNER JOIN
(SELECT SUM(jumlah) as total2, th, tw FROM t_silm GROUP BY th,tw) as T2
on T2.tw =T1.tw AND T2.th=T1.th
WHERE T1.tw =4 and T1.th = 2018;
Try this query
SELECT t1.total as total1, t2.total as total2, total1/total2 as total_avg
from t_slim t1 INNER JOIN t_revenue t2 on t1.th=t2.th
and t2.tw=t1.tw WHERE t1.th=2018 and t1.tw=4
you can use this query
SELECT sum(t_slim.total) as to1, sum(t_revenue.jumlah) as to2, to1/to2 as taverage
from t_slim t1 INNER JOIN t_revenue t2 on t1.th=t2.th
and t1.tw=t2.tw WHERE t1.th=2018 and t1.tw=4
this gives you the average as the answer