2012-12-13 54 views
0

我有一個MySQL表payment我存儲了我的客戶端的所有支付相關數據。表字段是:fileNoclientNamebillNo,billAmountstatus。我想建立一個搜索表單,在那裏我將輸入fileNoclientName,這將產生一個表,獲取該文件編號或客戶名稱的所有記錄,其中status = 0(未付費)。這裏的billAmount是一個浮點數。MySQL SUM()操作

我在MySQL沒有好,但這裏是我的版本的SQL通過FILENO

$sql = "SELECT * FROM `payment` WHERE `fileNo` = '$fileNo' AND `status` = '0'"; 

SQL通過CLIENTNAME

$sql = "SELECT * FROM `payment` WHERE `clientName` = '$clientName' AND `status` = '0'"; 

無論哪種方式,我做了查詢,我還需要顯示相對於該文件No或clientName的總未付金額。

從我的理解中,SUM()操作應該是這樣的:

$sql = "SELECT SUM(billAmount) AS `unpaid` WHERE `fileNo` = '$fileNo' AND `status` = '0'"; 

$sql = "SELECT SUM(billAmount) AS `unpaid` WHERE `clientName` = '$clientName' AND `status` = '0'"; 

我的問題是,我是用我的SUM()操作正確嗎?如何獲得我選擇的總未付金額爲unpaid?我可以將它存儲在一個變量中嗎?

任何想法,建議或資源鏈接將非常感謝!

回答

0

我覺得你應該使用第二個查詢但你錯過了WHERE子句

$sql = "SELECT SUM(billAmount) AS `unpaid` FROM payment WHERE `clientName` = '$clientName' AND `status` = '0'"; 

您的總金額未付是ü不能得到它作爲像

$result = mysql_query($sql); 
$row = mysql_fetch_array($result); 
    ehco $row['unpaid'] ;   <------ this will give you the unpaid amount. 
當然

ü取後變量您查詢。

0

我覺得你的查詢是完全正確的,不要忘了FROM子句:

$sql = "SELECT SUM(billAmount) AS `unpaid` FROM payment WHERE `clientName` = '$clientName' AND `status` = '0'"; 

要小心,如果你的客戶的名字可能包含引號(有addslashes的函數來看看)

然後,得到的總和:

$sum = current(mysql_fetch_row(mysql_query($sql))); 
0

BTW

在這個查詢,你已經錯過了FROM條款:-)

"SELECT SUM(billAmount) AS `unpaid` 
FROM payment 
WHERE `fileNo` = '$fileNo' 
AND `clientName` = '$clientName' 
AND `status` = '0'"; 

是的,它可以存儲從第一次查詢的變量的值,並在次級使用。 我希望如果我現在可以在移動設備上爲您提供適當的SQLFIDDLE示例。稍後如果您可以嘗試此代碼,請稍後更新。