0

次のコードを使用して、これまで行ってきたジョブの合計を計算しています。私が今やりたいことは、毎月の合計を追加することですが、それをどのように適応させるかわかりません。次のようなものが必要です

$query = $db->query("SELECT SUM(pricequoted) pricequotedtotal,SUM(partprice) partpricetotal,SUM(profit) profittotal FROM `jobdetails` WHERE jobstatus='complete' AND WHERE `completeddate` = ALL DATES IN JANUARY, FEB, ETC ETC"

これを毎月行うと、毎月次のように計算でき ます

    // Work Complete Totals
    $query = $db->query("SELECT SUM(pricequoted) pricequotedtotal,SUM(partprice) partpricetotal,SUM(profit) profittotal FROM `jobdetails` WHERE jobstatus='complete'");
    $result = $query->fetch_object();
    $pricequoted1 = "{$result->pricequotedtotal}";
    $pricequoted = number_format($pricequoted1, 2, '.', '');
    $partprice1 = "{$result->partpricetotal}";
    $partprice = number_format($partprice1, 2, '.', '');
    $profit1 = "{$result->profittotal}";
    $profit = number_format($profit1, 2, '.', '');
    echo '<div style="float:right; padding-right:10px;">';
    echo '<strong>Work Complete Totals</strong>';
    echo '<p><strong style="color:red;">Quoted Total : &pound;'.$pricequoted.'</strong></p>';
    echo '<p><strong style="color:Darkorange ;">Parts Total : &pound;'.$partprice.'</strong></p>';
    echo '<p><strong style="color:green;">Profit Total : &pound;'.$profit.'</strong></p>';
    echo '</div>';

id customerID name facebookuserurl tel email address itemfor repair repairdetails otherdetails pricequoted part price Profit datepartordered job status date of complete datecreateitenumber

47 bf0b4 Becki Lett https://www.facebook.com/becki.lett ラップトップ 私の娘のラップトップには問題があるようです。 -01-01 inprogressjobstodo 1970-01-01 2013-04-30 4558547578

4

2 に答える 2

2

GROUP BY ステートメントが欠落しているコードのわずかにクリーンなバージョン。これを試してみてください。

// Work Complete Totals
$query = $db->query("SELECT SUM(pricequoted) AS pricequotedtotal,
                            SUM(partprice) AS partpricetotal,
                            SUM(profit) profittotal,
                            DATE_FORMAT('%Y-%m', completeddate) AS month 
                     FROM `jobdetails` 
                     WHERE jobstatus='complete'
                     GROUP BY DATE_FORMAT('%Y-%m', completeddate)");


echo '<div style="float:right; padding-right:10px;">';
echo '<strong>Work Complete Totals</strong>';

while($result = $query->fetch_object()) {

    $pricequoted = number_format($result->pricequotedtotal, 2, '.', '');
    $partprice   = number_format($result->partpricetotal, 2, '.', '');
    $profit      = number_format($result->profittotal, 2, '.', '');

    echo '<p><strong style="color:red;">Quoted Total : &pound;'.$pricequoted.'</strong></p>';
    echo '<p><strong style="color:Darkorange ;">Parts Total : &pound;'.$partprice.'</strong></p>';
    echo '<p><strong style="color:green;">Profit Total : &pound;'.$profit.'</strong></p>';
}

echo '</div>';
于 2013-05-23T15:04:34.893 に答える
0

Mysql GROUP BY を使用する

例えば

SELECT Year(record_date),MONTH(record_date),SUM(pricequoted) pricequotedtotal,SUM(partprice) partpricetotal,SUM(profit) profittotal FROM `jobdetails` 
WHERE jobstatus='complete'
GROUP BY YEAR(record_date), MONTH(record_date)

record_date は、日付型または日時型の列になります

于 2013-05-23T15:03:28.413 に答える