我有一张描述餐厅仓库的桌子。在此表格中,我具有字段ID自动递增,WID,数量,单价,尺寸,名称。
ID是唯一的,但让我展示一个php脚本,该脚本描述了插入时我在做什么
if(isset($_POST['refill_date'])){
$id = intval($_POST['item_id']);
$wid = intval($_POST['item_wid']);
$name = $_POST['name'];
$qty = floatval($_POST['quantity']);
$dimen = $_POST['dimension'];
$tp = floatval($_POST['total_price']);
$up = floatval($_POST['unit_price']);
$dist_id = intval($_POST['dist_id']);
$waybill = $_POST['waybill'];
$refill_date = $_POST['refill_date'];
if(!empty($wid) && !empty($id)){
$insert = $MySQL->query("INSERT INTO warehouse (wid,name,quantity,dimension,unit_price,refill_date,distributor_id,waybill) VALUES ($wid,'$name',$qty,'$dimen',$up,'$refill_date',$dist_id,'$waybill')");
$update = true;
}else{
$insert = $MySQL->query("INSERT INTO warehouse (name,quantity,dimension,unit_price,refill_date,distributor_id,waybill,date) VALUES ('$name',$qty,'$dimen',$up,'$refill_date',$dist_id,'$waybill',now())");
$wid = mysql_insert_id();
$update = $MySQL->query("UPDATE warehouse SET wid = $wid WHERE id = $wid");
}
if($insert === true && $update === true)
echo "success";
else
echo "failure";
exit;
}
因此,您可以看到,如果不存在该产品,它将创建一个新产品并将新ID分配给WID,并且将来在添加同一产品时,WID将相同,但ID将增加。
现在,我的任务是输出不同的数据,但是应该对数量求和,而单价应该计算出算术平均值。我有13个WID为65的记录,所有这些都有不同的单价,因此所有单价应加起来并除以13。所有这些将像一条记录一样输出。有可能吗?
最佳答案
$MySQL->query("SELECT DISTINCT id,wid,name,SUM(`quantity`) `QTY`,dimension,AVG(`unit_price`) `AVG`,refill_date,date,edit_date,distributor_id,waybill FROM warehouse GROUP BY wid LIMIT 20 OFFSET $offset");
这为我工作,并提供了我想要的所有结果。
关于php - MySQL算术平均查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34379456/