2017-11-08 5 views
0

私はMS Accessで長いSELECTクエリを持っています。私は基本的にクエリによって選択されていないテーブルからすべてを削除したいと思います。ありがとうございました!GROUP BY句でSELECTクエリの反対を削除するom MS Access

SELECT [Benefit Refused Cancellation Report].BENEFIT_PERIOD, 
     [Benefit Refused Cancellation Report].BENEFIT_TYPE, 
     [Benefit Refused Cancellation Report].CARRIER_NAME, 
     [Benefit Refused Cancellation Report].PLAN_NAME, 
     [Benefit Refused Cancellation Report].PERSON_TYPE, 
     [Benefit Refused Cancellation Report].LAST_NAME, 
     [Benefit Refused Cancellation Report].FIRST_NAME, 
     [Benefit Refused Cancellation Report].MIDDLE_NAME, 
     [Benefit Refused Cancellation Report].SUFFIX, 
     [Benefit Refused Cancellation Report].GENDER, 
     [Benefit Refused Cancellation Report].DATE_OF_BIRTH, 
     [Benefit Refused Cancellation Report].DATE_OF_HIRE, 
     [Benefit Refused Cancellation Report].EFFECTIVE_DATE, 
     Max([Benefit Refused Cancellation Report].END_DATE) AS MaxOfEND_DATE, 
     [Benefit Refused Cancellation Report].SSN 

FROM [Benefit Refused Cancellation Report] 

GROUP BY [Benefit Refused Cancellation Report].BENEFIT_PERIOD, 
     [Benefit Refused Cancellation Report].BENEFIT_TYPE, 
     [Benefit Refused Cancellation Report].CARRIER_NAME, 
     [Benefit Refused Cancellation Report].PLAN_NAME, 
     [Benefit Refused Cancellation Report].PERSON_TYPE, 
     [Benefit Refused Cancellation Report].LAST_NAME, 
     [Benefit Refused Cancellation Report].FIRST_NAME, 
     [Benefit Refused Cancellation Report].MIDDLE_NAME, 
     [Benefit Refused Cancellation Report].SUFFIX, 
     [Benefit Refused Cancellation Report].GENDER, 
     [Benefit Refused Cancellation Report].DATE_OF_BIRTH, 
     [Benefit Refused Cancellation Report].DATE_OF_HIRE, 
     [Benefit Refused Cancellation Report].EFFECTIVE_DATE, 
     [Benefit Refused Cancellation Report].SSN; 

答えて

0

あなたは相関サブクエリでこれを行うことができます。

delete from [Benefit Refused Cancellation Report] 
    where END_DATE < (select max(brdr2.End_Date) 
         from [Benefit Refused Cancellation Report] as brcr2 
         where brcr2.SSN = [Benefit Refused Cancellation Report].SSN 
        ); 

これはSSNは一意にあなたがの1行をしたいそれぞれの行を定義していることを前提としています。 GROUP BYと実際に一致させるには、より多くのフィールドを含めるか、すべてのフィールドを含める必要があります。

注意:これはNULLの値を考慮しないため、一致に使用するキーはNULLでなければなりません。