Ошибка в запросе с фильтрацией при помощи вложенного запроса

У меня какая-то проблема с запросом вычисления себестоимости заготовки для блюда в ресторане. Запрос вот такой:

select (SUM(IF(inv.gross <> 0, (inv.price_for_all / inv.gross) * II.weight, 0)) / B.weight) * BI.weight AS costPriceBlank, inv.id, inv.name
from invoice inv
    join stock_item si on inv.stock_item_id = si.id
    join ingredient I on si.ingredient_id = I.id
    join ingredient_info II on I.id = II.ingredient_id
    join blank B on II.blank_id = B.id
    join blank_info BI on B.id = BI.blank_id
    join warehouses W on W.id = si.warehouses_id
    join posinfo pi on W.pos_info_id = pi.id
where B.id = 117
  and pi.client_legal_informations_id = 12
  and inv.id = (SELECT inv_sub.id
                FROM invoice inv_sub,
                     stock_item si_sub
                WHERE inv_sub.id in (inv.id)
                  AND inv_sub.warehouses_id = W.id
                  AND inv_sub.archive = FALSE
                  AND inv_sub.expense = FALSE
                  AND inv_sub.stock_item_id = si_sub.id
                GROUP BY inv_sub.id
                ORDER BY inv_sub.id
                LIMIT 1)
group by inv.name,
         inv.price_for_all,
         inv.price_for_one,
         inv.gross,
         inv.id,
         BI.weight
order by inv.id;

Для отладки кроме суммы он еще выводит номер и название накладной на складе, из которой берется стоимость ингредиентов для заготовки.

Внутренний запрос фильтрует накладные и нужен для того, чтобы в расчетах учитывалась только первая несписанная накладная.

Проблема в том, что этот запрос работает неправильно. Он выбирает лишние накладные. Он должен брать только одну несписанную накладную, а берет все. Если добавить еще несколько накладных на один и тот же ингредиент на складе, то они все учитываются.

Как переписать этот запрос, чтобы в расчете учитывалась только одна первая несписанная накладная по каждому ингредиенту?

7500,360,соль каменная  (кг)
10000,361,сахарный песок (кг)
2500,362,сахарный песок (кг)

Ответы (0 шт):