0
我有兩個表。一個是包含數量信息,並具有以下結構更新表使用總和
> mysql> DESCRIBE summary_finished;
+---------------+---------------+------+-----+---------+
| Field | Type | Null | Key | Default |
+---------------+---------------+------+-----+---------+
| db_id | int(11) | NO | PRI | NULL |
| finished_id | text | NO | | NULL |
| finished_name | text | NO | | NULL |
| qoh | int(11) | NO | | NULL |
| value | decimal(10,2) | NO | | NULL |
+---------------+---------------+------+-----+---------+
mysql> DESCRIBE detail_finished;
+-------------+---------------+------+-----+---------+
| Field | Type | Null | Key | Default |
+-------------+---------------+------+-----+---------+
| db_id | int(11) | NO | PRI | NULL |
| finished_id | text | NO | | NULL |
| quantity | int(11) | NO | | NULL |
| value | decimal(10,2) | NO | | NULL |
+-------------+---------------+------+-----+---------+
在detail_finished存在具有相同finished_id許多項的詳細信息表。我試圖完成的是將具有相同finished_id的項目組合起來,並將該總和更新到summary_finished.qoh字段。這是我到目前爲止有:
function set_qty($total, $finished_id){
global $connection;
$query="UPDATE summary_finished
SET qoh={$total}
WHERE finished_id='$finished_id'";
$quantity=mysql_query($query, $connection);
confirm_query($quantity);
}
$query="SELECT finished_id, SUM(quantity) FROM detail_finished GROUP BY finished_id";
$result=mysql_query($query, $connection) or die(mysql_error());
while($row = mysql_fetch_array($result)){
set_qty($row['SUM(quantity)'], $row['finished_id']);
}
我知道的款項都正確計算,我可以附和他們直出,但我不能讓我的表進行更新。原諒我的sl code代碼我完全用mysql很新。預先感謝您的幫助。
這是給我不正確的數字。約3000關。我有文本類型ID,因爲這是在我們的主庫存系統中使用的ID。示例ID是M70951BLA。這可能是我的問題在哪裏?在我開始嘗試使用sum之前,您的查詢顯示了我的方式過於複雜的腳本的確切數字。 – Rich 2011-03-04 19:35:14
如果您的代碼與M70951BLA類似,則可以使用varchar類型。文字不是必需的。你的意思是不正確的數字是什麼?你能舉一些例子嗎?我試過我的查詢,結果是正確的。 – 2011-03-04 19:51:24
如果我轉儲finished_detail和finished_summary數量和qoh的總數都應匹配。但他們沒有。將類型更改爲varchar並重新運行 – Rich 2011-03-04 19:57:31