#sql #sql-server
#sql #sql-сервер
Вопрос:
Я создаю синхронизацию с использованием SQL. Я пытаюсь запросить таблицу, которая содержит результаты сравнения данных о количестве продуктов в нескольких таблицах. Я пытаюсь отобразить данные для продуктов, у которых было смещение больше 0 в течение 7 дней или более. Это запрос, который я написал, чтобы попытаться получить этот результат
select Sap_code, Product_description, Location, Total_difference
from Misalignment
where Total_difference > 0 and
count(Total_difference) > 7
group by Sap_code, Product_description, Location, Total_difference
При запуске этого запроса я получаю следующее сообщение об ошибке:
Агрегат может не отображаться в предложении WHERE, если он не находится в подзапросе, содержащемся в предложении HAVING или списке выбора, а агрегируемый столбец является внешней ссылкой. «
Я включил изображение таблицы, которую я запрашиваю, в качестве точки отсчета
Комментарии:
1. Ошибка довольно ясна, что вы в ней не понимаете?
2. Ошибка также указывает вам, куда она должна идти: «содержится в предложении HAVING»
3. @HoneyBadger, все еще новичок в SQL, поэтому прошу прощения, если я не подключился ко всем сообщениям об ошибках…
4. @Larnu, я попытался включить предложение having, но оно все равно не сработало.
5. Тогда покажите эту попытку и в вашем вопросе, @Nitamashu.
HAVING
это именно то, что вам нужно.
Ответ №1:
Дает ли этот запрос то, что вы хотите?
SELECT COUNT(Total_difference) AS DiffCount, Sap_code, Product_description
, Location, Total_difference
FROM Misalignment
WHERE Total_difference > 0
GROUP BY Sap_code, Product_description, Location
HAVING COUNT(Total_difference) > 7
Комментарии:
1. Хорошо, вы можете проверить ответ, если он подходит для вас.