So what I need is to create a fake/imitation table that is embedded in code. It will have a list of dates in a VALUE/LABEL style set up. With dynamic dates on the Value and the description (Today's Date, Yesterdays Date, Last Monday, First of Month, etc) as Label.
This is how I want it to appear
Value Label
5/25/2017 Today
5/24/2017 Yesterday
5/15/2017 Prev Monday
5/01/2017 First of Month
This is how it currently appears (which I don't want)
Today Yesterday 2_Days_ago
2017-05-25 00:00:00.000 2017-05-24 00:00:00.000 2017-05-23 00:00:00.000
The purpose is to create a dynamic set of dates to choose from in Subscription reporting in SSRS. I will use this mock table as a stored dataset on the reporting server to link to a set of To dates and From dates. IE Date From [Yesterday] to Date To [Today]. etc.
I found this reference site
https://www.mssqltips.com/sqlservertip/3421/add-a-date-range-dataset-in-sql-server-reporting-services/
Which is a great start, but I want to take it one step further by making this a table like dataset. Many reports require subscription dates that vary. IE certain people want it daily with the Date Range being [Yesterday] to [Today]. Some people want it Weekly, [Prev Monday] to [Prev Saturday] and others want it once a Month [Prev BOM] to [Prev EOM] Etc.
Having a Date dataset that will dynamically change for subscription reporting will help a lot in not creating multiple versions of the report with difference default dates.
This is as far as I got. I have no idea how to get the Labels to appear next to the dates in the correct order.
SELECT convert(datetime,convert(varchar(8),getdate(),112)) as [Today] UNION
SELECT convert(datetime,convert(varchar(8),DATEADD(d,-1,GETDATE()),112)) as [Yesterday] UNION
SELECT convert(datetime,convert(varchar(8),DATEADD(d,-2,GETDATE()),112)) AS [2_Days_ago] UNION
SELECT DATEADD(wk,DATEDIFF(wk,0,GETDATE()),0) AS [ThisWeek_Mon] UNION
SELECT DATEADD(wk,DATEDIFF(wk,0,GETDATE()),4) AS [ThisWeek_Fri] UNION
SELECT DATEADD(wk,DATEDIFF(wk,0,GETDATE()),5) AS [ThisWeek_Sat] UNION
SELECT DATEADD(wk,DATEDIFF(wk,0,GETDATE()),6) AS [ThisWeek_Sun] UNION
SELECT DATEADD(wk,DATEDIFF(wk,7,GETDATE()),0) AS [PreviousWeek_Mon] UNION
SELECT DATEADD(wk,DATEDIFF(wk,7,GETDATE()),4) AS [PreviousWeek_Fri] UNION
SELECT DATEADD(wk,DATEDIFF(wk,7,GETDATE()),0) AS [PreviousWeek_Sat] UNION
SELECT DATEADD(wk,DATEDIFF(wk,7,GETDATE()),6) AS [PreviousWeek_Sun] UNION
SELECT DATEADD(mm,DATEDIFF(mm,0,GETDATE()),0) AS [BOM FirstDayOfThisMonth] UNION
SELECT DATEADD(ms,-3,DATEADD(mm,0,DATEADD(mm,DATEDIFF(mm,0,GETDATE())+1,0))) AS [EOM_LastDayOfThisMonth] UNION
SELECT DATEADD(mm,-1,DATEADD(mm,DATEDIFF(mm,0,GETDATE()),0)) AS [Prev_BOM_FirstDayOfLastMonth] UNION
SELECT DATEADD(ms,-3,DATEADD(mm,0,DATEADD(mm,DATEDIFF(mm,0,GETDATE()),0))) AS [Prev_EOM_LastDayOfLastMonth] UNION
SELECT DATEADD(q,DATEDIFF(q,0,GETDATE())-1,0) AS [BoPQ FirstDayOfLastFullQuarter] UNION
SELECT DATEADD(D, 0, DATEDIFF(D, 0, DATEADD(s,-1,DATEADD(q,1,DATEADD(q,DATEDIFF(q,0,GETDATE())-1,0))))) AS [EoPQ_LastDayOfLastFullQuarter] UNION
SELECT DATEADD(q,DATEDIFF(q,0,GETDATE()),0) AS [BoCQ_FirstDayOfThisQuarter] UNION
SELECT DATEADD(D, 0, DATEDIFF(D, 0, DATEADD(s,-1,DATEADD(q,2,DATEADD(q,DATEDIFF(q,0,GETDATE())-1,0))))) AS [BoCQ_LastDayOfThisQuarter] UNION
SELECT DATEADD(yy,DATEDIFF(yy,0,GETDATE()),0) AS [BoY_FirstDayOfThisYear] UNION
SELECT DATEADD(ms,-3,DATEADD(yy,0,DATEADD(yy,DATEDIFF(yy,0,GETDATE())+1,0))) AS [EoY_LastDayOfThisYear] UNION
SELECT DATEADD(yy,-1,DATEADD(yy,DATEDIFF(yy,0,GETDATE()),0)) AS [Prev_BoY_FirstDayOfLastYear] UNION
SELECT DATEADD(ms,-3,DATEADD(yy,0,DATEADD(yy,DATEDIFF(yy,0,GETDATE()),0))) AS [Prev_EoY_LastDayOfLastYear]`