您可以将原始查询改造为子查询,然后在外部查询中使用SUM函数来计算所有结果行的quantity的总和。改造后的查询如下所示:

SELECT SUM(quantity) as totalQuantity
FROM (
    SELECT
        Material as material, Batch as batch, PostingDate as postingDate,quantityInEntryUnit as quantityInEntryUnit,(QuantityInEntryUnit - ArtificialConsume - AutomaticConsume) as quantity
    FROM
        vmi_materialdocument
    <where>
        <if test="postingDate != null and postingDate != ''">
            DATE_FORMAT(PostingDate, '%Y-%m') = DATE_FORMAT(#{time}, '%Y-%m')
        </if>
        <if test="type == '1'">
            AND (QuantityInEntryUnit - ArtificialConsume - AutomaticConsume) > 0
        </if>
        <if test="type == '2'">
            AND (QuantityInEntryUnit - ArtificialConsume - AutomaticConsume) <= 0
        </if>
    </where>
) AS subquery

这样,外部查询将返回名为totalQuantity的列,其中包含所有结果行的quantity的总和。

SELECT Material as material Batch as batch PostingDate as postingDatequantityInEntryUnit as quantityInEntryUnitQuantityInEntryUnit - ArtificialConsume - AutomaticConsume as quantity

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

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