Я пишу отчеты с довольно сложными наборами данных, множеством объединений. Чтобы упростить задачу и поскольку я в основном объектно-ориентированный разработчик, я Мы писали небольшие (обычно скалярные) функции для работы, которую можно было бы выполнить путем присоединения к подзапросу. Такие вещи:
SELECT
x.Name, x.userId,
... [more columns and joins]
dbo.CountOrders(x.userId)
FROM Customers x
WHERE ...
Это хорошая практика? Небрежно? Медленный? Должен ли я писать обычный T-SQL для этого?