Member 13536981 Ответов: 2

Как я могу вернуть запись подкатегории продукта с помощью SQL-запроса


Верните все записи подкатегорий продуктов, производство которых занимает в среднем 3 дня или более.

Что я уже пробовал:

выбирать*
от производства].[Продукт]
группы[Кодтовара]
имея avg([DaysToManufacture])>3

2 Ответов

Рейтинг:
2

OriginalGriff

Это не сработает: вы можете возвращать только агрегатные функции и столбцы предложений group из оператора GROUP BY.
Я не уверен точно, что это за данные и что вы пытаетесь вернуть - так что взгляните на это: SQL GROUP By и ошибка "имя столбца недопустимо в списке выбора, потому что..." [^]
Надеюсь, это объяснит, что вы пытаетесь сделать.


Рейтинг:
1

ZurdoDev

Решение 1 говорит о том, что вы не можете сделать SELECT*, потому что вы можете выбрать только столбцы, которые находятся в вашей группе по оператору, и те, которые вы суммируете(поле) Или подсчет(поле) и т. д.

Таким образом, вы можете сделать что-то подобное, используя производную таблицу:

SELECT p.*
FROM (
  -- this is your original sql here
  select productid  -- you can get product_id because you are grouping on it
  From [Production].[Product]
  group by[ProductID] 
  having avg([DaysToManufacture])>3
) x
INNER JOIN product p ON x.productid = p.productid -- on the outside, you now join back to the same table so you can get all the rest of the fields