上述SQL语句基本是正确的,但是在标签中的条件判断语句可以稍作修改。以下是修正后的SQL语句:

SELECT
    ManufacturingOrder,
    Material,
    Reservation,
    ReservationItem,
    SUM(RequiredQuantity) AS requiredQuantity,
    ManufacturingOrderOperation,
    BillOfMaterialItemNumber,
    GoodsMovementType,
    MaterialGroup
FROM
    ods_productionordercomponent
WHERE 1=1
    <if test="manufacturingOrder != null and manufacturingOrder != ''">
        AND ManufacturingOrder = #{manufacturingOrder}
    </if>
    <if test="material != null and material != ''">
        AND Material = #{material}
    </if>
GROUP BY
    ManufacturingOrder,
    Material,
    Reservation,
    ReservationItem,
    ManufacturingOrderOperation,
    BillOfMaterialItemNumber,
    GoodsMovementType,
    MaterialGroup;

标签中,使用1=1作为初始条件,这样可以避免在第一个条件之前需要添加"AND"关键字。然后根据条件判断语句动态添加查询条件

SELECT ManufacturingOrderMaterialReservationReservationItemsumRequiredQuantity as requiredQuantityManufacturingOrderOperation BillOfMaterialItemNumberGoodsMovementTypeMaterialGroup

原文地址: https://www.cveoy.top/t/topic/iJxM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录