0

SQL Server の最新のバックアップの詳細を示すレポートを作成しようとしています。今のところ、私はこれを書き留めています:

select 
    [Server_Name] = a.server_name, 
    [Database_Name] = a.database_name, 
    [Last_Backup] = max(a.backup_finish_date),  
    [Backup_Type] = CASE A.type
                              WHEN 'D' THEN 'FULL'
                              WHEN 'I' THEN 'Differential'
                              WHEN 'L' THEN 'Log'
                              WHEN 'F' THEN 'FileGroup'
                              WHEN 'G' THEN 'FileGroup Differential'
                              WHEN 'P' THEN 'Partial'
                              WHEN 'Q' THEN 'Partial Differential'
                  END,
    [Backup_Set] = b.name,
    [Days_Since_Last_Backup] = DATEDIFF(d,(max(a.backup_finish_Date)),GETDATE())
from msdb.dbo.backupset AS a
INNER JOIN msdb.dbo.backupset as b ON a.backup_set_id = b.backup_set_id
GROUP BY a.database_name, a.server_name, b.name, a.type
ORDER BY database_name

列に次のように表示されるように変更したいと思います。

Server_Name, Database_Name, Last_Full_Backup, Last_Diff_Backup, Last_Log_Backup, 
Backup_Set, Days_Since_Last_Full

Last_Full_BackupLast_Diff_Backup、およびの日付を表示するにはLast_Log_Backup、いくつかのピボットを行う必要があると思いますが、どうすればよいかわかりません (ピボットにはあまり慣れていません)。

どんな助けでも大歓迎です。事前にすべてに感謝します。

4

1 に答える 1

0

次のような「手動ピボット」を実行できます。

SELECT 
    [Server_Name] = a.server_name, 
    [Database_Name] = a.database_name, 
    [Last_Backup]      = MAX(a.backup_finish_date),  
    [Last_Full_Backup] = MAX(CASE WHEN A.type='D' 
                                    THEN a.backup_finish_date ELSE NULL END),
    [Last_Diff_Backup] = MAX(CASE WHEN A.type='I' 
                                    THEN a.backup_finish_date ELSE NULL END),
    [Last_Log_Backup]  = MAX(CASE WHEN A.type='L' 
                                    THEN a.backup_finish_date ELSE NULL END),
    [Backup_Set] = b.name,
    [Days_Since_Last_Backup] = DATEDIFF(d,(max(a.backup_finish_Date)),GETDATE())
FROM msdb.dbo.backupset AS a
INNER JOIN msdb.dbo.backupset as b ON a.backup_set_id = b.backup_set_id
GROUP BY a.database_name, a.server_name
ORDER BY database_name
于 2014-03-04T18:16:13.987 に答える