2017-02-17 3 views
0

новый на этом сайте, поэтому стараюсь делать все возможное, чтобы следовать инструкциям при задании вопросов. Я создаю отчет и имею проблемы с датой, которую я должен вызвать в названии Post Date. Эта дата должна возвращаться в отчете как 25-й месяц счета-фактуры, если дата выставления счета находится на 25-й или предыдущей. Если дата выставления счета после 25-го числа месяца, мне нужна дата, чтобы отразить 25-е число следующего месяца. Я делал заявления о делах, но мне не повезло.Date Logic for Post Date Invoice

Это линия Я использую в настоящее время:

case 
    when (DAY(CT.HLSINVOICEDATE) < 26) 
     then (Month(CT.HLSINVOICEDATE + '/25' + Year(CT.HLSINVOICEDATE))) 
    else DATEADD(MM, 1, CT.HLSInvoiceDate) + '/25' + YEAR(CT.HLSInvoiceDate) 
    end as [Post Date] 

Например, если моя дата-фактура 2/17/07 Я хочу сообщение Дата быть 2/25/17, однако если дата счета-фактуры это 2/26/17 Я хочу, чтобы дата публикации была 3/25/17. Спасибо за любую помощь заранее. При попытке сделать это при получении ошибки. Я использую SQLServer 2008 R2. Благодаря!

ответ

0

Ниже запрос должен дать ожидаемый результат.

SELECT case 
    when (DAY(CT.HLSINVOICEDATE) < 26) 
     then CAST(Month(CT.HLSINVOICEDATE)as varchar(2)) + '/25/' + CAST(Year(CT.HLSINVOICEDATE) as varchar(4)) 
    else CAST((Month(CT.HLSINVOICEDATE)+1)as varchar(2)) + '/25/' + CAST(YEAR(CT.HLSInvoiceDate) as varchar(4)) 
    end as [Post Date]