Итак, у меня есть 2 таблицы:
Таблица категорий
Analit int
PositionInMenu int
Таблица элементов
Analit int
CategoryAn int
Итак, у меня есть около 50 категорий и 2000 предметов.Мне нужно взять для каждой категории количество предметов, которые оно включает.
1) SELECT *, (SELECT COUNT(Analit) FROM Item_table t2 WHERE t2.CategoryAn = t1.Analit) as tCount FROM Categories_table t1 ORDER BY PositionInMenu
2) Добавить в таблицу категорий вычисляемый столбец с помощьювызов функции:
([dbo].[Categories_GetItemsCountInCategory]([Analit]))
и код функции:
CREATE FUNCTION dbo.Categories_GetItemsCountInCategory
(
@categoryId int = null
)
RETURNS int
AS
BEGIN
RETURN (SELECT COUNT(Analit)
FROM Items
WHERE CategoryAn = @categoryId)
END
И тогда я могу просто взять значение добавленного столбца в мой запрос:
SELECT *
FROM Categories_table
ORDER BY PositionInMenu
Итак, вопрос .Что лучше для меня?