by 초보 [SQLServer] [2024.04.12 01:41:48]
안녕하십니까?
sql server사용해야하는데요.
a,b,c,d,e,f,g,h컬럼이 있는 상황에서 a,b,c,d,e가 pk 입니다. a,b,c는 고정값이고 d,e가 자동으로 번호가 부여되는데
가장 최신 데이터를 찾아서 장표로 출력을 해야합니다. 아래에서 E가 나와야합니다.
('a1', 'cd1', '1', '1','1', 'A')
('a1', 'cd1', '1', '1','2', 'B')
('a1', 'cd1', '1', '2','1', 'C')
('a1', 'cd1', '1', '2','2', 'D')
('a1', 'cd1', '1', '2','3', 'E')
아래처럼 하면 원하는 값을 찾을수있긴 한데 장표테이블이여서 컬럼수도 많고 한데 이방법으로 해도 될지 의문 입니다.
①과②가 속도면에서 차이가 있나요?
① select a,b,c,d,e,f,g,h from testTable where (a+b+c+d+e) in ( select a+b+c+max(d+e) from testTable group by a,b,c ) ② select a,b,c,d,e,f,g,h from testTable inner join ( select a, b, c, max(d+e) as de from testTable group by a, b, c ) as T2 on testTable.a = T2.a and testTable.b = T2.b and testTable.c = T2.c and testTable.d+testTable.e = T2.de