Ошибка, связанная с only_full_group_by в MySql - PullRequest
1 голос
/ 03 мая 2019

Я создал запрос, который выдает ошибку only_full_group_by. Я хочу изменить запрос, а не SET sql_mode = only_full_group_by

# 1055 - Выражение № 4 списка SELECT отсутствует в предложении GROUP BY и содержит неагрегированный столбец 'hrdk.s.item_stock_id', который функционально не зависит от столбцов в предложении GROUP BY; это несовместимо с sql_mode = only_full_group_by #

Это вопрос, который доставляет мне неприятности:

SELECT `s`.`department_id`, `s`.`category_id`, `s`.`item_id`, `s`.`item_stock_id`, `s`.`tunch`, `cat`.`category_name`, `im`.`item_name`, `im`.`stock_method`, `cat`.`category_group_id`, SUM(s.grwt) AS grwt, SUM(s.ntwt) AS ntwt, sum(s.less) AS less, SUM(s.fine) AS fine
FROM `item_stock` `s`  
LEFT JOIN `item_master` `im` ON `im`.`item_id` = `s`.`item_id`  
LEFT JOIN `account` `pm` ON `pm`.`account_id` = `s`.`department_id`  
LEFT JOIN `category` `cat` ON `cat`.`category_id` = `s`.`category_id`  
WHERE (im.stock_method = 1 AND (`s`.`grwt` =0 OR `s`.`grwt` !=0)   
   OR (`im`.`stock_method` = 2 AND `s`.`grwt` != 0))  
   AND s.department_id IN(26,27,28,29,30,31,32,59)   
   AND `s`.`grwt` !=0  
   AND `s`.`department_id` = '26'   
GROUP BY `s`.`category_id`, `s`.`item_id`, if(`im`.`stock_method` = 1, `s`.`tunch`, "")  
ORDER BY `s`.`item_stock_id` DESC

Дайте мне знать, если вам нужна дополнительная информация.

1 Ответ

0 голосов
/ 03 мая 2019

Вы должны добавить все неагрегированные столбцы в group by

SELECT s.department_id, s.category_id, s.item_id, s.item_stock_id, s.tunch, cat.category_name, im.item_name, im.stock_method, cat.category_group_id, SUM(s.grwt) AS grwt, SUM(s.ntwt) AS ntwt, sum(s.less) AS less, SUM(s.fine) AS fine 
FROM item_stock s LEFT JOIN item_master im ON im.item_id = s.item_id 
LEFT JOIN account pm ON pm.account_id = s.department_id 
LEFT JOIN category cat ON cat.category_id = s.category_id 
WHERE (im.stock_method = 1 AND (s.grwt =0 OR s.grwt !=0) OR (im.stock_method = 2 AND s.grwt != 0))AND s.department_id IN(26,27,28,29,30,31,32,59) AND s.grwt !=0 AND s.department_id = '26' 
GROUP BY s.department_id, s.category_id, s.item_id, s.item_stock_id, s.tunch, cat.category_name, im.item_name, im.stock_method, cat.category_group_id
ORDER BY s.item_stock_id DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...