Reputation: 817
1) I'm need only to pull data if the the openddate is equal to the PrevBiz date. I think the where/and statement would be Openddate = PrevBiz
, but not sure. It wasn't working for me and could be because the date format isn't matching. Any Suggestions?
DECLARE @TODAY DATE = GETDATE()
DECLARE @PREVFIRST CHAR(8) = CONVERT(CHAR(8), DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) - 1, 0), 112)
DECLARE @PREVLAST CHAR(8) = CONVERT(CHAR(8), DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), -1), 112)
DECLARE @PREVBIZ CHAR(12) = DATEADD(DAY, CASE DATENAME(WEEKDAY, CONVERT(CHAR(12), @TODAY,112))
WHEN 'SUNDAY' THEN -2
WHEN 'MONDAY' THEN -3
ELSE -1 END, DATEDIFF(DAY, 0, CONVERT(CHAR(12), @TODAY, 112)))
SELECT TOP 10
CURRENTDATE =@TODAY,
FIRST_OF_MONTH =@PREVFIRST,
LASTDAY_OFMONTH =@PREVLAST,
PREVBIZ =@PREVBIZ,
DATEADD(DAY, CASE DATENAME(WEEKDAY, CONVERT(DATE, @TODAY,101))
WHEN 'SUNDAY' THEN -2
WHEN 'MONDAY' THEN -3
ELSE -1 END, DATEDIFF(DAY, 0, CONVERT(DATE, @TODAY, 101))) AS PREVIOUSBIZDATE,
OpendDate
FROM [USBI_DW].[USBI].[vw_NameAddressBase]
where IsCurrent = 1
Upvotes: 0
Views: 39
Reputation: 921
declare @TODAY datetime = convert(date,GETDATE())
declare @PREVBIZ datetime = DATEADD(DAY, CASE DATENAME(WEEKDAY,@TODAY)
WHEN 'SUNDAY' THEN -2
WHEN 'MONDAY' THEN -3
ELSE -1 END,@TODAY)
declare @iToday int = convert(nvarchar(8),@TODAY, 112)
, @iPrevBiz int = convert(nvarchar(8),@PREVBIZ, 112)
select top 10
CURRENTDATE =@iToday,
PREVBIZ =@iPrevBiz,
OpendDate
from [USBI_DW].[USBI].[vw_NameAddressBase]
where IsCurrent = 1
and OprendDate = @iPrevBiz
hope your view contains int date attribute ( because of DateWarehouse specific)
Upvotes: 2