2016-10-03 10 views
-1

こんにちは私は、日付を比較するテーブルにフラグを作成しようとしています。終了日が開始日よりも大きいが、開始年の11月30日よりも短い場合は、Yとしてフラグを立てる必要があります。日付が1より大きい日付のフラグを作成するSQL Server

私はSQL Server 2014を使用しています。誰も私を助けることができますか?あなたは、私が以下を示して何に似て、このためにcase文を使用することができます

おかげ

+1

'開始日'どのようなものですか?RESULTSさらに詳しい情報を入力してください –

+1

もちろん、私たちを助けることができます。何を試しましたか?実際のコードのヘルプが必要な場合は、列名、データ型などのいくつかの詳細を提供する必要があります。フラグを使用するFWIWは、データを処理するための古くからの方法です。 –

+0

プロジェクトが特定の日付@JaydipJで開始するときを意味します。 –

答えて

0

は、私はまた、クエリの結果が含まれています。

CREATE TABLE #Graduates 
(
    ID INT IDENTITY(1,1), 
    FullName VARCHAR(1000), 
    StartDate DATE, 
    EndDate DATE, 
    CommencementDate DATE NULL 
) 

INSERT INTO #Graduates 
    (
     FullName, 
     StartDate, 
     EndDate, 
     CommencementDate 
    ) 
    SELECT 
     'Curly', 
     '8/26/2000', 
     '06/12/2004', 
     '06/5/2004' 
    UNION 
    SELECT 
     'Doug', 
     '8/23/2002', 
     '06/2/2006', 
     '06/12/2006' 
    UNION 
    SELECT 
     'Larry', 
     '8/23/2012', 
     '12/2/2016', 
     '6/4/2016' 
    UNION 
    SELECT 
     'Moe', 
     '8/23/2012', 
     '12/2/2016', 
     NULL 

SELECT 
    *, 
    CASE WHEN EndDate > CommencementDate AND EndDate <= '11/30/' + CONVERT(VARCHAR(4),Year(CommencementDate)) THEN 'Y' 
     ELSE 'N' END AS Flag 
FROM #Graduates 

DROP TABLE #Graduates 

/*

ID FullName StartDate EndDate  CommencementDate Flag 
    1 Curly 2000-08-26  2004-06-12 2004-06-05   Y 
    2 Doug 2002-08-23  2006-06-02 2006-06-12   N 
    3 Larry 2012-08-23  2016-12-02 2016-06-04   N 
    4 Moe  2012-08-23  2016-12-02 NULL    N 

*/

+0

あなたは天才です、ありがとう美しく働いた –

関連する問題