2013-03-17 124 views
0

我取,并从数据库这样计算总排

SELECT purchorders.orderno, 
        suppliers.suppname, 
        purchorders.orddate, 
        purchorders.deliverydate, 
        purchorders.initiator, 
        purchorders.requisitionno, 
        purchorders.allowprint, 
        purchorders.status, 
        suppliers.currcode, 
        currencies.decimalplaces AS currdecimalplaces, 
        SUM(purchorderdetails.unitprice*purchorderdetails.quantityord) AS ordervalue 
       FROM purchorders 
       INNER JOIN purchorderdetails 
       ON purchorders.orderno = purchorderdetails.orderno 
       INNER JOIN suppliers 
       ON purchorders.supplierno = suppliers.supplierid 
       INNER JOIN currencies 
       ON suppliers.currcode=currencies.currabrev 
       WHERE purchorders.orderno=purchorderdetails.orderno 
       GROUP BY purchorders.orderno, 
        suppliers.suppname, 
        purchorders.orddate, 
        purchorders.initiator, 
        purchorders.requisitionno, 
        purchorders.allowprint, 
        purchorders.status, 
        suppliers.currcode, 
        currencies.decimalplaces LIMIT 5 

显示记录我得到正确的结果。但我想计算并显示我所显示的ordervalues的结果(总所有5个,因为我把它限制在5)

我试图做这样的

$SalesOrdersResult2 = DB_query($SQL,$db); 
while ($row = DB_fetch_array($SalesOrdersResult2)) 
{ 
$FormatedOrderValue2 = locale_number_format($row['ordervalue'],$row['currdecimalplaces']); 
$Total = $array_sum($row['ordervalue']); 
$FormatedOrderDate1 = ConvertSQLDate($row['orddate']); 
         $FormatedDelDate1 = ConvertSQLDate($row['deliverydate']); 

         echo " <tr><td> " . $row['suppname'] . " </td>"; 
         echo " <td>$FormatedOrderDate1</td><td>$FormatedDelDate1</td><td> " . $row['initiator'] . " </td><td>$FormatedOrderValue2</td><td> " . $row['status'] . " </td></tr> "; 

        } 
     echo "<tr><td colspan='3'>Total---</td><td colspan='2'>$Total</td></tr></tbody>"; 

但它说“致命错误:函数名必须是一个字符串...”

有人请帮我做这个 感谢

回答

0

我怀疑你试图做这样的事情?:

$SalesOrdersResult2 = DB_query($SQL, $db); 
$Total = 0; 
while ($row = DB_fetch_array($SalesOrdersResult2)) 
{ 
    $FormatedOrderValue2 = locale_number_format($row['ordervalue'],$row['currdecimalplaces']); 
    $Total += $row['ordervalue']; 
    $FormatedOrderDate1 = ConvertSQLDate($row['orddate']); 
    $FormatedDelDate1 = ConvertSQLDate($row['deliverydate']); 
    echo " <tr><td> " . $row['suppname'] . " </td>"; 
    echo " <td>$FormatedOrderDate1</td><td>$FormatedDelDate1</td><td> " . $row['initiator'] . " </td><td>$FormatedOrderValue2</td><td> " . $row['status'] . " </td></tr> "; 
} 
echo "<tr><td colspan='3'>Total---</td><td colspan='2'>$Total</td></tr></tbody>"; 
+0

他们非常感谢你,它解决了我的目的。谢谢 – user2178637 2013-03-17 05:41:35

0

$前删除3210。

+0

如果我删除它给出错误 警告:array_sum()预计参数1是数组,字符串中 – user2178637 2013-03-17 05:27:33

+0

给出这是因为'array_sum '不是你需要的。你需要'+ ='。 – 2013-03-17 05:39:45

+0

是的。我从来没有意识到:( – user2178637 2013-03-17 06:03:33