2016-11-22 5 views
1

У меня есть сотни баз данных на одном SQL-сервере (SQL2012), все они имеют одну и ту же базовую структуру, и я пытаюсь получить среднее количество «Контакты» наших баз данных.TSQL - усреднение результата из sp_MSforeachdb

Я могу запустить запрос sp_MSforeachdb, который представляет список количества контактов в таблице контактов, но мне нужно затем усреднить результат. Любые указания по этому поводу.

Это запрос, я получил до сих пор:

exec sp_MSforeachdb 
'use ? 
IF DB_NAME() NOT IN ("model","tempdb","master","msdb") 
select count (CONTACTID) as TotalContacts from contact_tbl ' 

Я ценю это, вероятно, довольно простые вещи, но здесь я новичок, и я гугл дерьма из него и пытался много различных предложений отсюда и других мест без радости.

Любая помощь будет оценена по достоинству.

+1

Вставьте счет в таблицу, затем вы можете делать все, что хотите? –

+0

Большое спасибо, спасибо - – KEW

ответ

1

Вам нужна временная таблица. Вставьте результат процедуры Sp_msforeachdb в одну временную таблицу и найдите среднее значение

IF Object_id('tempdb..#avg') IS NOT NULL 
    DROP TABLE #avg 

CREATE TABLE #avg(cnt INT) 

INSERT INTO #avg(cnt) 
EXEC Sp_msforeachdb 
    'use ? 
    IF DB_NAME() NOT IN ("model","tempdb","master","msdb") 
    select count (CONTACTID) as TotalContacts from contact_tbl ' 

SELECT Avg(cnt) 
FROM #test 
+0

Спасибо Prdp - TSQL по-прежнему нова, но это кажется довольно простым (как подозревалось) - Детские шаги. – KEW

Смежные вопросы