Here is my hint, not responding as you requested:
Consider date manipulations using the current date (you can use GETDATE() or your date variable), DATEADD() and DATEDIFF() can be used to write in a couple of lines.
If you just want to simplify your method, you can use the CASE statement:
DECLARE @date DATE = '2013-09-13' SELECT CASE WHEN DATENAME(DW,@DATE) = 'SUNDAY' THEN CAST(DATEADD(DAY,-3,@DATE) AS VARCHAR(12)) + ' IS THE NEAREST SATURDAY' WHEN DATENAME(DW,@DATE) = 'MONDAY' THEN CAST(DATEADD(DAY,-2,@DATE) AS VARCHAR(12)) + ' IS THE NEAREST SATURDAY' WHEN DATENAME(DW,@DATE) = 'TUESDAY' THEN CAST(DATEADD(DAY,-1,@DATE) AS VARCHAR(12)) + ' IS THE NEAREST SATURDAY' WHEN DATENAME(DW,@DATE) = 'WEDNESDAY' THEN CAST(DATEADD(DAY,1,@DATE) AS VARCHAR(12)) + ' IS THE NEAREST SATURDAY' WHEN DATENAME(DW,@DATE) = 'THURSDAY' THEN CAST(DATEADD(DAY,2,@DATE) AS VARCHAR(12)) + ' IS THE NEAREST SATURDAY' WHEN DATENAME(DW,@DATE) = 'FRIDAY' THEN CAST(DATEADD(DAY,3,@DATE) AS VARCHAR(12)) + ' IS THE NEAREST SATURDAY' ELSE CONVERT(NVARCHAR,@DATE) + ' IS SATURDAY' END
To clarify the method that I hinted at, and Sparky, you must configure DATEFIRST to do this work, it works depending on what day will be on the first day of the week, Saturday is the 7th day of the week, like this:
SET DATEFIRST 7 DECLARE @date DATE = '2013-09-21' SELECT DATEADD(day,7-DATEPART(weekday,@date),@date)