I have a database that stores database sizes. At times I simply want to get the last row for each database. Sample DataDatabase(SYSNAME) DataFileSize(INT) Batch(INT PK)DatabaseA 30 1DatabaseB 15 2DatabaseC 40 3...DatabaseA 31 7DatabaseB 15 8DatabaseC 41 9
To get what I need I am using a temp table. Query:SELECT DatabaseName, MAX(Batch) AS LastBatch INTO #tempFROM tblDatabaseSizesGROUP BY DatabaseNameSELECT * FROM tblDatabaseSizesWHERE Batch IN (SELECT LastBatch FROM #temp)ORDER BY DatabaseNameDROP TABLE #temp
Which gives me the data I expect:DatabaseA 31 7DatabaseB 15 8DatabaseC 41 9
It just seems like there should be an easier way to get it. Is there?