See if this helps:DECLARE @T TABLE (NAME VARCHAR(10), CurrentDueDate DATETIME, CompletionDate DATETIME)INSERT INTO @TSELECT 'Name1', '2/1/2009', '1/1/2009' UNION ALLSELECT 'Name2', '2/1/2009', '3/1/2009' UNION ALLSELECT 'Name3', '4/1/2009', '2/1/2009' UNION ALLSELECT 'Name1', '1/1/2009', '12/31/2008' UNION ALLSELECT 'Name3', '3/1/2009', '4/1/2009' UNION ALLSELECT 'Name2', '5/1/2009', '6/1/2009' UNION ALLSELECT 'Name2', '2/1/2009', '1/1/2009' UNION ALLSELECT 'Name4', '3/1/2009', '4/1/2009'SELECT [NAME],CountComplete = COUNT(CompletionDate),LateCount = COUNT(CASE WHEN CompletionDate > CurrentDueDate THEN 1 END),LatePercent = 100.0*(1.0*COUNT(CASE WHEN CompletionDate > CurrentDueDate THEN 1 END)/(COUNT(CompletionDate))),OnTimePercent = 100.0*(1.0*COUNT(CASE WHEN CompletionDate <= CurrentDueDate THEN 1 END)/(COUNT(CompletionDate)))FROM @TGROUP BY NAME
Some days you're the dog, and some days you're the fire hydrant.