Here is how you get -1 day for all days except for Monday ( which will now be -3 )
select DATEADD(DD, (case when datename( weekday, DATEADD(DD, -1, CAST(GETDATE() as DATE)) ) like 'Monday' then -3 else -1 end ), CAST(GETDATE() as DATE))
If you need Saturday and Sunday to also show Friday:
select DATEADD(DD, (
case when datename( weekday, DATEADD(DD, -1, CAST(GETDATE() as DATE)) ) like 'Monday' then -3
when datename( weekday, DATEADD(DD, -1, CAST(GETDATE() as DATE)) ) like 'Sunday' then -2
when datename( weekday, DATEADD(DD, -1, CAST(GETDATE() as DATE)) ) like 'Saturday' then -1
else -1 end
), CAST(GETDATE() as DATE))
Or if you need Saturday and Sunday to show the current day:
select DATEADD(DD, (
case when datename( weekday, DATEADD(DD, -1, CAST(GETDATE() as DATE)) ) like 'Monday' then -3
when datename( weekday, DATEADD(DD, -1, CAST(GETDATE() as DATE)) ) like 'Sunday' then 0
when datename( weekday, DATEADD(DD, -1, CAST(GETDATE() as DATE)) ) like 'Saturday' then 0
else -1 end
), CAST(GETDATE() as DATE))