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"

并且每个月都这样做,所以我每个月都可以拥有: 一月 报价:200 英镑零件价格:50 英镑利润:150 英镑

    // 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 itemforrepair repairdetails other details pricequoted partprice Profit datepartordered jobstatus dateofcompletion datecreated itemnumber

47 bf0b4 Becki Lett https://www.facebook.com/becki.lett 笔记本电脑 我女儿的笔记本电脑似乎有问题,我想......好吧,没问题,我应该能适合你... 0 1970 -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 回答