2017-04-26 15 views
0

각 사용자의 맨 위 행을 가져오고 경우에 따라서는 3을 얻고 싶습니다. 중복이 있고 유감스럽게도 단 몇 줄로 제한되어 있습니다. 더 이상 "데이터 방식"을 사용하여 결과를 제한 할 필요가 없습니다.progressdb (대문자)의 MAX에 해당합니다.

샘플 쿼리는 다음과 같습니다

SELECT 
"PUB"."EMPLOYEE"."FirstName", 
"PUB"."EMPLOYEE"."LastName", 
"PUB"."COMP"."IDNum" 
FROM "PUB"."EMPLOYEE" 
JOIN "PUB"."COMP" on "PUB".EMPLOYEE"."ID" = "PUB"."COMP"."ID" 
WHERE "PUB"."EMPLOYEE"."ENDEMPLOY" is null 

이 사람들은 여러 고용 기록을 가질 수있다.

MSSQL에서 나는 MAX()를 할 것입니다. 그러나 나는 이것을 openge의 옵션으로 보지 못합니까? 각 행을 고유 한 IDNum 중 하나로 제한하려면 어떻게합니까?

+0

진도가 이해하는 SQL 92 코드를 사용하여이 작업을 수행하는 방법을 살펴볼 수 있습니다. ODBC에서 해당 코드를 추출하는 경우이 방법이 최선의 방법 일 것입니다. 이제 4GL 코드로이 작업을 수행하려는 경우 옵션 일 경우 더 쉽고 간편하게 처리 할 수 ​​있습니다. – bupereira

답변

0
SELECT DISTINCT 
"PUB"."EMPLOYEE"."FirstName", 
"PUB"."EMPLOYEE"."LastName", 
"PUB"."COMP"."IDNum" 
FROM "PUB"."EMPLOYEE" 
JOIN "PUB"."COMP" on "PUB".EMPLOYEE"."ID" = "PUB"."COMP"."ID" 
WHERE "PUB"."EMPLOYEE"."ENDEMPLOY" is null 
+0

distinct는이 시나리오에서 작동하지 않을 것입니다. – DaBlue