@mherz815 ,
First, help us help you in the future... please post readily consumable data instead of just text.
This will do it for you... remove anything that you don't want. Personally, I'd include the minutes for each day but left that out because you did.
WITH cte AS
(
SELECT WeekEndingDate = DATEADD(dd,DATEDIFF(dd,0,CONVERT(DATE,SUBSTRING([TIME],CHARINDEX(',',[TIME])+1,23)))/7*7,4)
,*
,[Minutes] = DATEDIFF(mi,[In],[Out])
FROM (VALUES --This simulates reading from a table
('Monday, January 01, 2018 ','7:30','16:30')
,('Tuesday, January 02, 2018 ','7:30','16:30')
,('Wednesday, January 03, 2018','7:30','16:30')
,('Thursday, January 04, 2018 ','7:30','16:30')
,('Friday, January 05, 2018 ','8:01','17:01')
,('Monday, January 08, 2018 ','8:07','17:07')
,('Tuesday, January 09, 2018 ','8:31','17:30')
,('Wednesday, January 10, 2018','7:52','16:52')
,('Thursday, January 11, 2018 ','7:52','17:30')
,('Friday, January 12, 2018 ','8:10','17:10')
)TestData([Time],[In],[Out])
)
SELECT [Time] = CASE
WHEN GROUPING(WeekEndingDate)=0 AND GROUPING([Time])=0 THEN [Time]
WHEN GROUPING(WeekEndingDate)=0 AND GROUPING([Time])=1 THEN '*WeekEnding '+CONVERT(CHAR(12),WeekEndingDate,107)
ELSE '**All Weeks Total'
END
,[In] = CASE
WHEN GROUPING(WeekEndingDate)=0 AND GROUPING([Time])=0 THEN MAX([IN])
ELSE ''
END
,[Out] = CASE
WHEN GROUPING(WeekEndingDate)=0 AND GROUPING([Time])=0 THEN MAX([Out])
ELSE ''
END
,[Total Minutes per Week] =
CASE
WHEN GROUPING(WeekEndingDate)=0 AND GROUPING([Time])=0 THEN ''
ELSE LEFT(CONVERT(VARCHAR(10),CONVERT(MONEY,SUM([Minutes])),1),CHARINDEX('.',CONVERT(VARCHAR(10),CONVERT(MONEY,SUM([Minutes])),1))-1)
END
FROM cte
GROUP BY WeekEndingDate,[Time] WITH ROLLUP
ORDER BY GROUPING(WeekEndingDate), WeekEndingDate
,GROUPING([Time]),CONVERT(DATE,SUBSTRING([TIME],CHARINDEX(',',[TIME])+1,23))
;
That returns the following including your weekly subtotals and a weekending date and a grand total.