(Обновление 8/30: я пересмотрел свой пост с более подробной информацией, надеюсь, это поможет всем.)
В моем отчете три набора данных, каждый из которых содержит данные о размере файла с трех разных серверов SQL. Каждый набор данных выглядит так:
DATASET1
SERVERNAME DATABASE DATATYPE FILESIZE
s1 db1 data 5,445
s1 db1 log 2,456
s1 db2 data 6,987
s1 db2 log 9,234
DATASET2
SERVERNAME DATABASE DATATYPE FILESIZE
s2 db5 data 7,145
s2 db5 log 1,223
s2 db6 data 44,345
s2 db6 log 3,456
DATASET3
SERVERNAME DATABASE DATATYPE FILESIZE
s3 dba data 1,445
s3 dba log 456
s3 dbb data 4,556
s3 dbb log 1,233
В каждом наборе данных имеется больше строк, и каждый набор данных имеет разное количество строк, поскольку на каждом сервере имеется разное количество баз данных.
Я могу легко создать таблицу итогов для каждого набора данных для каждого типа данных (данные и журнал), группирующуюся по типу данных, и получить итоги, которые выглядят примерно так:
Server1 Server2 Server3
Data 34,445 Data 45,185 Data 98,334
Log 23,987 Log 12,993 Log 123,099
Я хочу создать общую сумму для всех трех наборов данных для каждой строки типа данных.
Total
Data 177,964
Log 160,079
Я знаю, как ссылаться на конкретный набор данных с помощью SUM, но это дает мне SUM для обеих строк. Я хочу СУММУ для КАЖДОЙ строки - общие данные и общий журнал для всех трех серверов. Я попытался использовать поиск, как было предложено, но это не дает мне всего, что я хочу. Предложение кода может работать, и я просто не понимаю его и правильно его реализую.
Мой sql использует файлы sys.sys, sys.database_files и sys.dm_os_volume_stats. Я попытался добавить к ним имя сервера, но получаю сообщение «Удаленные вызовы табличных функций запрещены».
Есть предложения? Спасибо!