Я пытаюсь устранить неполадки, связанные с определенным «отчетом», который генерируется в приложении PHP, работающем на платформе VOIP (связанная с выставлением счетов).Человек, который попросил меня сделать это, заявил: «Это работало раньше»;)
MySQL выдает ошибку: 1111: Invalid use of group function
Сумасшедшая вещь, это «работало до», но прекратилось через некоторое время, онине могу определить, какое событие имело место, что могло создать эту ошибку.Одна мысль, может быть, MYSQL был обновлен?Я погуглил ошибку и не могу найти четкого ответа.
На первый взгляд, ребята, вы видите что-то не так здесь в SQL?
SELECT C.ResourceGroupID AS CustomerID, CS.CustomerName, SUM(C.IN_RndDuration/60) AS Minutes, SUM(CASE WHEN (C.OUT_Duration>0 AND C.IN_RndDuration>0) THEN 1 ELSE 0 END) AS Successfull, count(0) AS Attempts
FROM ws_call_current AS C
LEFT JOIN customer_rg AS V_RG ON
V_RG.RGId=C.OtherResourceGroupID AND V_RG.RateTableId IS NOT NULL AND V_RG.Direction='O'
LEFT JOIN customer AS V ON V.CustomerId=V_RG.CustomerId
LEFT JOIN customer_rg AS CS_RG ON CS_RG.RGId=C.ResourceGroupID AND CS_RG.RateTableId IS NOT NULL AND CS_RG.Direction='I'
LEFT JOIN customer AS CS ON CS.CustomerId=CS_RG.CustomerId
WHERE DATE_FORMAT(DATE_ADD(C.SeizeDate, INTERVAL TIME_TO_SEC(C.SeizeTime) SECOND), '%Y-%m-%d %H:%i:00') BETWEEN '2010-10-19 00:00:00' AND '2010-10-19 23:59:59'
AND C.SeizeDate BETWEEN '2010-10-19' AND '2010-10-19'
GROUP BY CS.CustomerName
ORDER BY SUM(C.IN_RndDuration/60) DESC
Это написано для MYSQL3/4 Я верю, пока не уверен.Просто хотел получить отзыв.По результатам поиска в Google я обнаружил, что некоторым людям удалось исправить это, изменив запрос на Having
вместо where
?
Не уверен.Что-нибудь выглядит странно ниже?