2016-10-17 2 views
0

그룹화를 변경하지 않고 표 요소를 추가하려면 어떻게합니까? 의도 한대로이 선택한 작품 :그룹화를 변경하지 않고 표 요소를 포함하는 방법

이 나에게 내가 원하는 무엇인가하는 최대의 nqpoints 값이 그룹 CID, 서브 그룹 cnumber,의 레코드 하나를 포함하는 목록을 제공
SELECT cid, cnumber, cenrtyp, MAX(nqpoints); 
from demographicenroll3.dbf; 
WHERE cenrtyp = "RT" ; 
GROUP BY cid, cnumber, cenrtyp ; 

.

는하지만 ECID 내 레코드에 cnumber의 고유 레코드 번호를 포함해야 - 그래서 나는 ECID 추가

SELECT cid, cnumber, cenrtyp, MAX(nqpoints), ecid; 
from demographicenroll3.dbf; 
WHERE cenrtyp = "RT" ; 
GROUP BY cid, cnumber, cenrtyp, ecid ; 

을하지만이 최대을 그룹화 변경하기 때문에이 (작동하지 않습니다 nqpoints)가 잘못되었습니다. 내가 원하는 걸 얻기위한 어떤 트릭이 있니?

답변

1

당신은 다른 쿼리에서 파생 테이블에 기존 쿼리를함으로써 당신이 할 수있는 단일 쿼리에서 그렇게 할 수는 없지만 :

SELECT dmax.cid, dmax.cnumber, dmax.cenrtyp, maxpts, ecid ; 
FROM demographicenroll3 d3 
    JOIN (
    SELECT cid, cnumber, cenrtyp, MAX(nqpoints) AS maxpts; 
    from demographicenroll3; 
    WHERE cenrtyp = "RT" ; 
    GROUP BY cid, cnumber, cenrtyp) dmax ; 
    ON d3.cid = dmax.cid ; 
    AND d3.cnumber = dmax.cnumber ; 
    AND d3.cenrtyp = dmax.cenrtype ; 
    AND d3.nqpoints = dmax.maxpts 
+0

나는이 시도하지만 VFP는 DMAX 찾을 수 없습니다 오류 별칭을 제공합니다. VFP에서 자체 조인을 지원하므로 오류의 원인을 확실히 알 수 없습니다. 모든 문제 해결 제안 사항? – DClark

+0

좋아, 마침내 깨어나서 실제로 문제 (LOL)를 찾았습니다. 이제 쿼리가 작동하여 결과를 확인할 수 있습니다. 나는 돌아올거야 ... – DClark

+0

이것은 정확한 resutls를 나타납니다! 고마워, 나의 프로젝트는 다시 한 번 앞으로 나아 간다. – DClark

관련 문제