безопасность @Keith
? Почему был бы sprocs быть более безопасным?
Хранимые процедуры предлагают свойственную защиту от Внедрение SQL нападения.
Однако Вы не полностью защищены, потому что можно все еще записать хранимые процедуры, которые уязвимы для таких нападений (т.е. динамический SQL в сохраненном proc).
Думаю, ваш вопрос требует пояснений. Если вы хотите взять суммы, сгруппированные по t.client
, вы можете использовать:
SELECT t.client, SUM(t.asset)
FROM the-table t
GROUP BY t.client
Затем, если вы хотите взять среднее значение этой суммы, просто сделайте:
SELECT AVG(asset_sums)
FROM
(
SELECT t.client, SUM(t.asset) AS asset_sums
FROM the-table t
GROUP BY t.client
) as inner_query
Однако вы не можете сгруппировать внешний запрос, потому что это даст вам результаты, как в первом запросе. Результаты внутреннего запроса уже сгруппированы по t.client
.
Если вы пытаетесь получить средние активы клиентов, я думаю, что буду использовать в CTE. Вы можете попробовать, если sql 2005 или выше
ИЗМЕНИТЬ: Взял вторую группу, поскольку я думаю, вам нужен только один результат для средних активов
With clientsum (client,assets)
as
(
SELECT CLIENT, SUM(asset) AS assets
FROM CLIENTTABLE
GROUP BY CLIENT
)
SELECT avg(assets) AS Expr1
FROM clientsum