2014-10-02 5 views
1

아래 데이터를 표시하는 MS Access 쿼리가 있습니다.중복 값을 기준으로 행을 필터링하는 SQL 쿼리

enter image description here

나는, 실행될 때, 아래의 결과를 표시 일부 SQL을 쓰고 싶어요.

enter image description here

내가 가진 규칙은 다음과 같이하고, 입력란 5을 기반으로합니다.

Field5의 값이 'C'인 경우의 값이 다른 값의 경우 1 행만 표시합니다.

하위 연산자를 사용하고 첫 번째 연산자를 사용하기 시작했지만 내 테이블의 다른 모든 값이 고유하기 때문에 모든 행이 계속 표시됩니다.

이 불쌍한 내 시도 : 어떤 도움이 좋을 것

SELECT T.Field1, T.Field2, T.Field3, T.Field4, First(T.Field5) AS FirstOfField5 
FROM Table1 as T 
GROUP BY T.Field1, T.Field2, T.Field3, T.Field4 
ORDER BY First(T.Field5); 

.

답변

2

우리가 field1 각 행에 고유 한 것으로 가정하면, 당신은 할 수 있습니다 :

SELECT T.Field1, T.Field2, T.Field3, T.Field4, T.Field5 
FROM Table1 as T JOIN 
    (SELECT t.Field5, MIN(t.Field1) as Field1 
     FROM table1 
     GROUP BY t.Field5 
    ) as tt 
    ON tt.Field1 = t.Field1 or t.Field5 = 'C'; 

이 훨씬 더 어려울 것입니다 당신이 행에 대한 고유 식별자가없는 경우.

+0

도움 주셔서 감사합니다. 내 데이터베이스에서 SQL 하위 쿼리를 사용하여 조금 수정하고 치료를했습니다. – Eddie

관련 문제