2014-10-09 4 views
-1

그룹의 마지막 레코드를 가져 오려고합니다. 이것은 작업을 시도했지만 그룹의 첫 번째 레코드를 가져 오는 쿼리입니다.그룹의 마지막 레코드를 가져 오는 sql 쿼리

SELECT 
"hba"."ID", 
"hba"."session_number", 
"hba"."u_c", 
"hba"."u-v", 
"hba"."date" 
FROM "hba" 
GROUP BY "hba"."ID","hba"."session_number" 

모든 도움을 주시면 감사하겠습니다.

+1

"무엇이" "와" "모든" "" "두 번" "따옴표"? 또한, "마지막"으로 무엇을 의미하는지 설명하는 것이 유용 할 것입니다 ... –

+0

일부 도구는 SQL을 그런 식으로 만듭니다. 예를 들어, Cognos가합니다. 그것을 읽으려고 상처 입는다. – Andrew

+1

이 쿼리가 SQL Server (및 MySQL을 제외한 거의 모든 데이터베이스 엔진)에서 실패하기 때문에 SQL Server 태그를 제거했습니다. – Lamak

답변

0

여기서 추측하고 있습니다. ID 필드가 자동 증가 된 것으로 보입니다. 검색어가 session_number 인 고유 한 값에 대해 하나의 행만 표시하고 그 행이 가장 최근에 삽입 된 행 ("마지막 행")을 넣어야합니다.

각 그룹에 대해 가장 최근 행의 ID를 검색하는 것으로 시작하겠습니다.

SELECT MAX(ID) AS ID, session_number 
    FROM hba 
GROUP BY session_number 

그런 다음이를 하위 쿼리로 사용하여 테이블에 연결합시다.

SELECT a.ID, a.session_number, u_c, u_v, date 
    FROM hba AS a 
    JOIN (
     SELECT MAX(ID) AS ID, session_number 
      FROM hba 
     GROUP BY session_number 
     ) AS b ON a.ID = b.ID 
ORDER BY a.session_number 

자세히보기 먼저 "마지막 행"이 의미하는 것을 정의하고 해당 정의를 구현하기위한 하위 쿼리를 만듭니다. 그런 다음 해당 하위 쿼리를 사용하여 기본 테이블에서 필요한 데이터를 가져옵니다. 그런 다음 최종 결과 세트를 사용 가능한 방식으로 주문합니다.

어떤 이유로 든 Crystal Reports에서 작업하고 있다는 사실을 공개하지 않았습니다. MySQL 클라이언트를 사용하여 데이터베이스에서 필요한 정보로 뷰를 만든 다음 Crystal을 사용하여 해당 뷰에서 결과 세트를 렌더링하는 것이 유용 할 수 있습니다.

+0

Crystal 보고서에서 명령에서이 쿼리를 입력하려고 할 때 오류가 발생하므로 MAX() 특성이 작동하지 않습니다. – Dagz200

0
SELECT "hba"."ID", "hba"."session_number", "hba"."u_c", "hba"."u-v", "hba"."date" 
    FROM "hba" 
GROUP BY "hba"."ID","hba"."session_number" ORDER BY "hba"."ID" desc,"hba"."session_number" desc 

모두 완료해야합니다.

+0

시도했지만 작동하지 않았으므로 첫 번째 레코드와 가장 최근의 레코드를 가져옵니다 (마지막 레코드) – Dagz200

+0

@ Dagz200, 내가 편집 한 쿼리가 있습니다. 지금 확인하고 알려주세요. –

+0

여전히 동일한 결과가 발생합니다. 죄송합니다 – Dagz200

관련 문제