2016-04-07 2 views
0

1) Мне нужно только вытащить данные, если openddate равен дате PrevBiz. Я думаю, что где/и оператор будет Openddate = PrevBiz, но не уверен. Это не работало для меня, и может быть, потому что формат даты не соответствует. Какие-либо предложения?TSQL извлекает данные только в том случае, если другое поле даты предшествует рабочему дню

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  [email protected], 
      FIRST_OF_MONTH [email protected], 
      LASTDAY_OFMONTH [email protected], 
      PREVBIZ   [email protected], 

      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 

Вот мои результаты: enter image description here

ответ

2
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  [email protected], 
     PREVBIZ   [email protected], 
     OpendDate 

from [USBI_DW].[USBI].[vw_NameAddressBase] 
where IsCurrent = 1 
and OprendDate = @iPrevBiz 

надеюсь, что ваш вид содержит атрибут даты Int (из-за DateWarehouse специфического)

+0

Это прекрасно работает. Спасибо огромное! – BIReportGuy

Смежные вопросы

 Смежные вопросы