2017-02-17 4 views
0

このサイトでは新しいので、質問する際に指示に従うよう最善を尽くしています。私は報告書を作成しており、投稿日と呼ばれる日付に問題があります。この日付は、請求書日付が25日またはそれ以前であれば、請求書月の25日としてレポートに戻されます。請求書の日付が月の25日を過ぎている場合は、翌月の25日を反映するために後日が必要です。私はケース・ステートメントを試してきましたが、運がありません。ポスト日付請求書の日付ロジック

これは私が現在使用しているラインです:

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]