2017-03-09 4 views
0

ケースステートメントを利用する以下のクエリがあります。私は2つの日付をdateiffしたいが、週末の日は除外したい。 私はそのexcutesの下に持っていますが、今私が...これから土曜と日曜日を除外したいとDATEDIFF(DD、A.ALERTS_CREATE_DT、S.CreatedDate)< = 2EMBEDDED DATEDIFF除外猶予期間+ケースステートメント

CASE WHEN 
S.Name IN ('Assessment','Survey') 
    AND A.ALERT_DESC = 'ER'  
    AND CAST(A.ALERTS_CREATE_DT AS DATE) <= CAST(S.CreatedDate AS DATE) 
AND DATEDIFF(DD,A.ALERTS_CREATE_DT,S.CreatedDate) <= 2 /*EXCLUDE Sat and Sunday from the calculation*/ 

全クエリ

SELECT 

    CASE WHEN 
    S.Name IN ('Assessment','Survey') 
     AND A.ALERT_DESC = 'ER'  
     AND CAST(A.ALERTS_CREATE_DT AS DATE) <= CAST(S.CreatedDate AS DATE) 
     AND 
     (DATEDIFF(DD,A.ALERTS_CREATE_DT,S.CreatedDate) <= 2 /*Business Days*/ 
     --DATEDIFF(DD,A.ALERTS_CREATE_DT,S.CreatedDate) + 1 
     ---(DATEDIFF(WK,A.ALERTS_CREATE_DT,S.CreatedDate) * 2) 
     ---(CASE WHEN DATENAME(DW,A.ALERTS_CREATE_DT) = 'SUNDAY' THEN 1 ELSE 0 END) 
     ---(CASE WHEN DATENAME(DW,S.CreatedDate) = 'SATURADAY' THEN 1 ELSE 0 END) 
       ) 

    THEN 'Y' 
    WHEN A.ALERT_DESC = 'model' OR S.CreatedDate IS NULL OR S.Name = 'ER' 
    THEN '' 
    ELSE 'N' 
     END 'Count towards Alerts' 

FROM A 
FULL S ON A.id= S.id 

WHERE 1=1 
+0

追加情報は必要ですか? – John

答えて

0

これは、土曜日と日曜日を除外することによって、必要な結果が得られるはずです。

SELECT A.ALERT_DESC,A.ALERTS_CREATE_DT,S.Name,S.CreatedDate, 
    CASE WHEN 
     S.Name IN ('Assessment','Survey') AND A.ALERT_DESC = 'ER'  
     AND CAST(A.ALERTS_CREATE_DT AS DATE) <= CAST(S.CreatedDate AS DATE) 
     AND 
     ((DATEDIFF(DD,A.ALERTS_CREATE_DT,S.CreatedDate)+1 
     - (datediff(wk,A.ALERTS_CREATE_DT,S.CreatedDate)*2) 
     - case when datepart(dw,A.ALERTS_CREATE_DT)=1 then 1 else 0 end 
     - case when datepart(dw,S.CreatedDate)=7 then 1 else 0 end 
     )) <=2 THEN 'Y' 
     WHEN A.ALERT_DESC = 'model' OR S.CreatedDate IS NULL OR S.Name = 'ER' THEN '' 
     ELSE 'N' END 'Count towards Alerts' 
FROM A,S 
+0

これを私のクエリにどのように埋め込むか。それが私が苦労している場所です。 – John

+0

テーブル構造を共有できますか?私はそれに応じて質問を書こうとします。 –

+0

@John、私は完全な質問で私の答えを編集しました。いくつかのサンプルレコードのために私のために働いた。確認してもいい。 –

関連する問題