我有一张描述餐厅仓库的表格。在此表中,我有字段 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/