2017-09-26 15 views
-2

SQL Serverの同じ列に2つの必須レコードを検証する方法は?SQL Serverの同じ列に2つの必須一致レコードを照会する方法

@Declare @GivenMonth datetime='2017-03-01' 

私は日付を宣言し、表がPaymentStatus = 'Y'Month = @GivenMonthで2前のレコードが含まれているかどうかを確認する必要がいる:

id | Month  | PayamentStatus 
---+-------------+---------------- 
1 | 2017-01-01 | Y 
2 | 2017-02-01 | Y 
3 | 2017-03-01 | Y 
4 | 2017-04-01 | Y 

私はこのコードを使用しているが、それは働いていない:

SET @FirstPrecCovMonth = DATEADD(month, -1, @GivenMonth) 
SET @SecondPrecCovMonth = DATEADD(month, -2, @GivenMonth) 

IF EXISTS (SELECT * FROM PaymentRecord 
      WHERE PaymentStatus = 'Y' 
      AND (CoverageMonth = @FirstPrecCovMonth 
      AND CoverageMonth = @SecondPrecCovMonth)) 
BEGIN 
    ////////////////////////////// 
END 
+0

あなたの質問には適用されません –

+0

私は次の時間を覚えていると確信していない* *使用タグを行ってください。私の間違いが追加されました。 – piyush

答えて

2

IF EXISTS()は、CoverageMonth列に2つの異なる値がある行を探していますが、これは不可能です。

FirstMonthが存在し、SecondMonthが存在するかどうかを知りたいので、代わりにIF EXISTS()を2回実行する必要があります。擬似コード中のSO

IF EXISTS(SELECT using @FirstMonth) 
AND EXISTS(SELECT using @SecondMonth) 
    BEGIN ... 
関連する問題