dummyscripter
7 years agoLevel 2
SQL - query multiple archive-databases
Hi all I'm a bloody beginner with sql-code. What I want to know is to the amount of archived data for last night (22:00-06:00) and the night before. Both for two different archives. My code is the...
- 7 years ago
Mike,
Give this one a try. Its output is not exactly how you asked for, but it is more flexible and provides totals by archive and by date. Include as many days/archives as you want by editing the WHERE clause.
SELECT CASE WHEN GROUPING(CAST(CAST(ss.ArchivedDate AS DATE) AS varchar(10))) = 1 THEN 'All Dates' ELSE CAST(CAST(ss.ArchivedDate AS DATE) AS varchar(10)) END AS 'Archived Date' ,CASE WHEN GROUPING(av.ArchiveName) = 1 THEN 'All Archives' ELSE av.ArchiveName END AS 'Archive Name' ,SUM(ss.ItemSize) AS [Total Size (KB)] ,(SUM(CAST(ss.ItemSize AS DECIMAL) / 1024)) AS [Total Size (MB)] ,(SUM(CAST(ss.ItemSize AS DECIMAL) / 1024 / 1024)) AS [Total Size (GB)] FROM Saveset AS ss JOIN ArchivePoint AS ap ON ap.ArchivePointIdentity = ss.ArchivePointIdentity JOIN EnterpriseVaultDirectory.dbo.ArchiveView AS av ON av.VaultEntryId = ap.ArchivePointId WHERE ss.ArchivedDate > DATEADD(DAY, -2, CONVERT(DATE, GETDATE())) --Filter to two days prior to today's date --AND av.ArchiveName IN ('Name1', 'Name2') --Filter by Archive Name --AND av.VaultEntryId IN ('ArchiveID1', 'ArchiveID2') --Filter by Archive ID GROUP BY CAST(CAST(ss.ArchivedDate AS DATE) AS varchar(10)) ,av.ArchiveName WITH ROLLUP
Results look like this:
--Chris