ms-sql 해당 조건중 최상단값만 가져오기 쿼리입니다. 0 5 1,013

by 충성 [SQLServer] ms-sql [2017.04.04 17:17:24]


select
*
from
(
SELECT AGTTEAM,REGDATETIME FROM TB_AT 
    WHERE REGDATETIME IN (SELECT MAX(REGDATETIME)
    FROM TB_AT 
    GROUP BY AGTTEAM)
) a
where a.agtTeam = 2110 
 

 

해당테이블( TB_AT) 팀(agtTeam)이  2110으로 된것으로 가져오고 싶습니다.

예를 들어 

2110에 20170331185148인값만 가져오고 싶은데

저렇게 가져오네요..

저 맥스부분에서 팀관련을 어떻게는 녹여야 할것 같은데 못하고 있네요

agtTeam REGDATETIME
2110 2017033117515
2110

2017033118514

by jkson [2017.04.04 17:24:03]
select *
from
(
select agtTeam, regdatetime, row_number() over(partition by agtTeam order by regdatetime desc) rn 
from TB_AT
where agtTeam = '2110' --agtTeam 별 최종 데이터 가져올 때 조건 없애기
) a
where rn = 1
select top 1 *
from tb_at 
where agtteam = '2110'
order by regdatetime desc

 


by 충성 [2017.04.04 17:32:31]

감사합니다 이게 필요 했습니다~~~


by 마농 [2017.04.04 17:37:22]
SELECT TOP(1) *
  FROM tb_at
 WHERE agtTeam = 2110
 ORDER BY regdatetime DESC
;

 


by jkson [2017.04.04 17:48:54]

괄호는 가독성 때문에 쓰는 건가요?


by 충성 [2017.04.05 10:39:20]

기존이 탑으로 가져왔었는데

그거 해서 여러개의 팀코드 값이 들어갈 경우에는

union 같은걸로 해줘야 하서요

변경하려고 하는거였네요

전체적인 설명을 안달아서.....

암튼 감사합니다.

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입