SELECT ManufacturingOrder Material Reservation ReservationItem sumRequiredQuantity ManufacturingOrderOperation BillOfMaterialItemNumber GoodsMovementType MaterialGroup FROM ods_productionordercomponen
根据错误信息,你的SQL查询中包含了一个聚合函数(sum)和其他非聚合列(Reservation),这在没有使用GROUP BY子句的聚合查询中是不允许的。
要解决这个问题,你有两个选择:
- 如果你需要对非聚合列进行分组并显示每个分组的结果,你需要在SELECT语句中添加GROUP BY子句,将非聚合列添加到GROUP BY子句中。例如:
SELECT
ManufacturingOrder,
Material,
Reservation,
ReservationItem,
sum(RequiredQuantity),
ManufacturingOrderOperation,
BillOfMaterialItemNumber,
GoodsMovementType,
MaterialGroup
FROM
ods_productionordercomponent
WHERE
ManufacturingOrder ='1000098000'
AND Material = '068840280104007'
GROUP BY
ManufacturingOrder,
Material,
Reservation,
ReservationItem,
ManufacturingOrderOperation,
BillOfMaterialItemNumber,
GoodsMovementType,
MaterialGroup;
- 如果你只需要显示聚合结果,并不需要对非聚合列进行分组,你可以修改sql_mode参数,将其设置为不包含only_full_group_by。例如:
SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
SELECT
ManufacturingOrder,
Material,
Reservation,
ReservationItem,
sum(RequiredQuantity),
ManufacturingOrderOperation,
BillOfMaterialItemNumber,
GoodsMovementType,
MaterialGroup
FROM
ods_productionordercomponent
WHERE
ManufacturingOrder ='1000098000'
AND Material = '068840280104007';
请注意,修改sql_mode参数可能会影响其他查询的行为,所以请在修改之前谨慎评估
原文地址: https://www.cveoy.top/t/topic/iJxy 著作权归作者所有。请勿转载和采集!