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