Подскажите пожалуйста как правильно составить запрос Mysql, я не силен в составных запросах.
У меня есть запросSELECT `products`.`name` AS `name`,
SUM(`part`.`rest`) AS `rest`, -- остаток
SUM(`part`.`reserve`) AS `reserve`, -- резерв
`part`.`revision_actually` AS `rev_actually`, -- актуальный остаток (в админке менеджеры указывают)
`part`.`code` AS `code`, -- код товара
`part`.`point_id` AS `point_id` -- точка (магазин) к которой привязана партия
FROM `products` -- товары
INNER JOIN `part` -- партии
ON `products`.`id` = `part`.`prod_id`
WHERE `part`.`point_id` IN(1,2) AND (`part`.`rest` + `part`.`reserve`) != `part`.`revision_actually`
GROUP BY `part`.`code`, `part`.`point_id`
ORDER BY `part`.`code` ASC
Вот этот запрос у меня работает, но не считает сумму остатка и резервка всех партий.
У меня есть таблица товаров "products" и таблица партий "part" привязанных к этим товарам по "prod_id"
У товара может быть любое количество партий.
Партии могут отличаться поставщиком, ценами, и другими атрибутами.
Цель: Получить все партии, сгруппированные по коду и по точке продаж, но выбрать только партии у которых:
сумма остатка + сумма остатка в резерве не равна(!=) актуальному остатку
Пример запроса который по идее должен получиться, но у меня не работает если я в условие WHERE подставляю агрегатную функцию SUM, (ошибка №1111)
SELECT `products`.`name` AS `name`,
SUM(`part`.`rest`) AS `rest`, -- остаток
SUM(`part`.`reserve`) AS `reserve`, -- резерв
`part`.`revision_actually` AS `rev_actually`, -- актуальный остаток (в админке менеджеры указывают)
`part`.`code` AS `code`, -- код товара
`part`.`point_id` AS `point_id` -- точка (магазин) к которой привязана партия
FROM `products` -- товары
INNER JOIN `part` -- партии
ON `products`.`id` = `part`.`prod_id`
WHERE `part`.`point_id` IN(1,2) AND (SUM(`part`.`rest`) + SUM(`part`.`reserve`)) != `part`.`revision_actually`
GROUP BY `part`.`code`, `part`.`point_id`
ORDER BY `part`.`code` ASC
Прошу помощи магов по сложным запросам!