попытаться сгруппировать по инвентаризации_has_warehouses.inventory_id
Отредактированный ответ:
Вы действительно даете трудное время для того, чтобы кто-то прочитал ваш запрос и помог вам, но чтобы исправить ваш запрос, это переформатированный запрос с исправлениями:
SELECT
inventories.*,
SUM(inventory_has_warehouses.starting_balance) as total
FROM
inventories LEFT JOIN inventory_has_warehouses
ON
inventory_has_warehouses.inventory_id = inventories.id LEFT JOIN warehouses
ON
warehouses.id = inventory_has_warehouses.warehouse_id
WHERE
inventories.subscriber_id = 2
AND
inventories.status = 1
AND
(LOWER(inventories.itemcode) LIKE '%1%' or LOWER(inventories.purchasedescription)
LIKE '%1%' OR EXISTS
(SELECT
*
FROM
contacts
WHERE
inventories.supplier = contacts.id
AND
LOWER(contacts.name) LIKE '%1%')
OR
(SUM(inventory_has_warehouses.starting_balance) LIKE '%1%')) GROUP BY inventories.id
проблема с отправленным вами запросом заключается в следующем:
LIKE %1%
это утверждение ожидает строки и говорит только:
inventories.
это должно быть определено для нужного вам столбца или просто использовать запасы. * Для отображения всех столбцов этой таблицы, но ошибка все еще не имеет смысла, потому что она говорит:
select count() as aggregate
возможно, один из них решит, но после переформатирования вашего кода я сначала замечу синтаксическую ошибку, но это очень просто, может быть, вы можете начать с простого очень простого запроса, пока этот запрос может работать для вас:
SELECT
inventories.id AS inventory_id,
warehouses.id,
SUM(inventory_has_warehouses.starting_balance) AS total
FROM
inventories LEFT JOIN inventory_has_warehouses
ON inventories.id = inventory_has_warehouses.inventory_id
LEFT JOIN
warehouses
ON warehouses.id = inventory_has_warehouses.warehouse_id
GROUP BY
inventory_has_warehouses.inventory_id
с этого начала добавляя условия одно за другим, пока ошибка не появится снова (сделайте это в окне запросов mysql, а не через код laravel), пока не знаете, как laravel обрабатывает запросы sql, но отправленный вами формат действительно вызовет ошибку, а также, если Если вы собираетесь разместить здесь вопрос, убедитесь, что он удобен для чтения, иначе кто-то может хлопнуть вас, потому что вам трудно читать код, который не отформатирован должным образом. ;)
еще одна вещь, которую я забыл - убедитесь, что инвентаризация - это первичный ключ этой таблицы, иначе это все равно приведет к ошибке. Для получения более подробной информации перейдите по этой ссылке https://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html