2017-09-26 37 views
-2

如何驗證SQL Server中同一列中的2個強制記錄?如何查詢SQL Server中同一列中的2個強制匹配記錄

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

我宣佈一個日期,需要檢查表中是否包含2先行記錄與PaymentStatus = 'Y'Month = @GivenMonth

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列有兩個不同值的行,這是不可能的。

你反而需要做兩個IF EXISTS(),因爲你想知道FirstMonth是否存在並存在SecondMonth。

因此,在僞代碼:

IF EXISTS(SELECT using @FirstMonth) 
AND EXISTS(SELECT using @SecondMonth) 
    BEGIN ... 
相關問題