Использование стандартного SQL:
SELECT
LEFT(Items.Code, 9) AS ShortCode,
SUM(T.remaining) AS Quantity
FROM Items
JOIN (
SELECT
ItemID,
QuantityInStock - QuantityOnOrder - QuantityOnOrder2 - QuantityOnOrder3 - QuantityOnOrder4 AS remaining
FROM Warehouse
) AS T ON (T.ItemID = Items.ItemID)
GROUP BY LEFT(Items.Code, 9);
Не проверено, но должно работать. Единственная потенциальная проблема заключается в том, что вы используете заглавные буквы в именах таблиц и столбцов, поэтому вам может потребоваться заключить все имена таблиц и столбцов в обратные кавычки (`) или квадратные скобки в зависимости от сервера БД.
РЕДАКТИРОВАТЬ: Если вы хотите отфильтровать те, у кого осталось менее определенного количества частей, просто добавьте:
HAVING SUM(T.remaining) > xxx
Где xxx
- минимальное количество, которое вы хотите