나눔터  
  HOME > 나눔터 > 묻고답하기 > 액세스
액세스
액세스에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내
작성자:  

 황동준 (bogri2000)

추천:  0
파일:     조회:  1660
제목:   [RE]access group by 후 두번째 큰 값 질문
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

 - 액세스 버전(95,97,2000,xp,2003,2007):

* 아래줄에 질문을 작성하세요 >> 
<InsTbl>
C_No   Ins_Name
   1         aa
   2         bb

<RecTbl>
C_No     Dates        Remarks
   1    2020-01-01       입고
   1    2020-02-01       수리
   2    2020-03-01       입고
   1    2020-03-01       수리
   1    2020-04-01       수리
   2    2020-04-01       수리

SELECT
  InsTbl.C_No
  InsTbl.Ins_Name
  MAX(IFF(RecTbl.Remarks = '수리', RecTbl.Dates)) AS 최근수리
FROM
  InsTbl LEFT JOIN RecTbl ON InsTbl.C_No = RecTbl.C_No
GROUP BY
  InsTbl.C_No,
  InsTbl.Ins_Name
;

장비목록과 이력을 따로 관리하여, 위와 같이 가장 최근 수리내역을 관리하며
상용하고있습니다.
'수리' 내역의 두번째 큰 값을 불러오고 싶은데
고수분들의 조언 부탁 드립니다.

==============[오범석님 글에 대한 답변입니다]==============

상위값 2개를 구한 결과에

정렬기준의 최소값 또는 
 다시역순으로 정렬하여 제일 상위값

을 취하면 2번째 값이 됩니다.

SELECT TOP 1 T.Dates, T.C_No, T.Ins_Name
FROM (SELECT TOP 2 RecTbl.Dates, RecTbl.C_No, InsTbl.Ins_Name
FROM RecTbl LEFT JOIN InsTbl ON RecTbl.C_No = InsTbl.C_No
WHERE (((RecTbl.Remarks)="수리"))
ORDER BY RecTbl.Dates DESC , RecTbl.C_No DESC)  AS T
ORDER BY T.Dates, T.C_No;
 
[불량 게시물 신고]  
        
  

작성일 : 2021-03-04(13:04)
최종수정일 : 2021-03-04(13:09)
 


 ◎ 관련글

  제 목   작성자   날짜
access group by 후 두번째 큰 값 질문 오범석 2021-03-04
[RE]access group by 후 두번째 큰 값 질문 황동준 2021-03-04
[RE]access?group?by?후?두번째?큰?값?질문 오범석 2021-03-04