database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 2010 게시물 읽기
No. 2010
쿼리를 어떻게 맹그러야할지...
작성자
준팔이
작성일
2005-06-07 23:26ⓒ
2005-06-07 23:27ⓜ
조회수
2,804

이름 갱신일 주소 전화번호
=======================================================
홍길동 2005/02/04 경기도************ 3333-4444
홍길동 2004/03/24 서울************ 3333-4444
홍길동 2002/12/04 충청도************ 3333-4444
강남길 2005/03/13 서울*************** 444-5555
강남길 2003/12/04 강원도*************** 444-5555

위테이블에서 개인별 가장 최근 등록된 주소와 전화번호를 조회하는 쿼리를 어떻게 맹그러야할지
갈켜주세여. 가장 효율적인 방법을...

이름 갱신일 주소 전화번호
=======================================================
홍길동 2005/02/04 경기도************ 3333-4444
강남길 2005/03/13 서울*************** 444-5555

이 글에 대한 댓글이 총 4건 있습니다.

뭐 간단하게 셀프조인으로 해봤습니다.


create table tblx (
msno int identity
,msname char(10)
,msaddress char (50)
,msdate datetime
,msphone char(13)
)

-- drop table tblx
go

insert into tblx (msname,msaddress,msdate,msphone)
values('쓰레빠','서울 영등포동5가 제일빌딩1층',getdate(),'02667601')

insert into tblx (msname,msaddress,msdate,msphone)
values('김민석','서울 영등포동7가 제일빌딩9층',getdate(),'02667601')

insert into tblx (msname,msaddress,msdate,msphone)
values('김민자','서울 영등포동7가 제일빌딩1층',getdate(),'02667601')

insert into tblx (msname,msaddress,msdate,msphone)
values('써니','서울 영등포동7가 제일빌딩1층',getdate(),'02432667601')

insert into tblx (msname,msaddress,msdate,msphone)
values('쓰레빠','서울 영등포동5가 제일빌딩1층',getdate(),'04322667601')

insert into tblx (msname,msaddress,msdate,msphone)
values('박종열','서울 영등포동5가 제일빌딩1층',getdate(),'43202667601')

insert into tblx (msname,msaddress,msdate,msphone)
values('김민석','서울 영등포동7가 제일빌딩1층',getdate(),'02667601')

insert into tblx (msname,msaddress,msdate,msphone)
values('박종열','서울 영등포동7가 제일빌딩1층',getdate(),'02667601')

insert into tblx (msname,msaddress,msdate,msphone)
values('써니','서울 영등포동7가 제일빌딩1층',getdate(),'02667601')

insert into tblx (msname,msaddress,msdate,msphone)
values('김민석','서울 영등포동7가 제일빌딩1층',getdate(),'02667601')

select * from tblx order by msname

================================

select b.msno,b.msname,b.msaddress,b.msdate,b.msphone from
(select max(msno) as msTopNo ,msname from tblx group by msname) as a inner join
tblx as b on a.msTopNo = b.msno

 

================================

msno        msname     msaddress                                          msdate                                                 msphone      
----------- ---------- -------------------------------------------------- ------------------------------------------------------ -------------
2           김민석        서울 영등포동7가 제일빌딩9층                                   2005-06-08 02:59:29.643                                02667601    
7           김민석        서울 영등포동7가 제일빌딩1층                                   2005-06-08 02:59:29.643                                02667601    
10          김민석        서울 영등포동7가 제일빌딩1층                                   2005-06-08 02:59:29.643                                02667601    
3           김민자        서울 영등포동7가 제일빌딩1층                                   2005-06-08 02:59:29.643                                02667601    
8           박종열        서울 영등포동7가 제일빌딩1층                                   2005-06-08 02:59:29.643                                02667601    
6           박종열        서울 영등포동5가 제일빌딩1층                                   2005-06-08 02:59:29.643                                43202667601 
9           써니         서울 영등포동7가 제일빌딩1층                                   2005-06-08 02:59:29.643                                02667601    
4           써니         서울 영등포동7가 제일빌딩1층                                   2005-06-08 02:59:29.643                                02432667601 
5           쓰레빠        서울 영등포동5가 제일빌딩1층                                   2005-06-08 02:59:29.643                                04322667601 
1           쓰레빠        서울 영등포동5가 제일빌딩1층                                   2005-06-08 02:59:29.633                                02667601    

(10개 행 적용됨)

msno        msname     msaddress                                          msdate                                                 msphone      
----------- ---------- -------------------------------------------------- ------------------------------------------------------ -------------
3           김민자        서울 영등포동7가 제일빌딩1층                                   2005-06-08 02:59:29.643                                02667601    
5           쓰레빠        서울 영등포동5가 제일빌딩1층                                   2005-06-08 02:59:29.643                                04322667601 
8           박종열        서울 영등포동7가 제일빌딩1층                                   2005-06-08 02:59:29.643                                02667601    
9           써니         서울 영등포동7가 제일빌딩1층                                   2005-06-08 02:59:29.643                                02667601    
10          김민석        서울 영등포동7가 제일빌딩1층                                   2005-06-08 02:59:29.643                                02667601    

 

아~ 많이 심심하네 -_- 잠도 안오고 ^-^ 열심히 하세요 맥주 한잔 하니 기분 좋습니다. 500반잔 마시고 석이가...

석이님이 2005-06-08 03:27에 작성한 댓글입니다.
이 댓글은 2005-06-08 03:31에 마지막으로 수정되었습니다. Edit

create table temp_table
(이름 varchar(10),
갱신일 varchar(10),
주소 varchar(50),
전화번호 varchar(20)
)


insert into temp_table values  ('홍길동', '2005/02/04', '경기도*********', '3333-4444')
insert into temp_table values  ('홍길동', '2004/03/24', '서울*********', '3333-4444')
insert into temp_table values  ('홍길동', '2002/12/04', '충청도*********', '3333-4444')
insert into temp_table values  ('강남길', '2005/03/13', '서울*********', '3333-4444')
insert into temp_table values  ('강남길', '2002/12/04', '강원도*********', '3333-4444')

select * from temp_table

select a.이름, a.갱신일, a.주소, a.전화번호 from temp_table a
 where a.갱신일 = (select max(갱신일) from temp_table where 이름 = a.이름)

drop table temp_table

 

여리님이 2005-06-08 11:18에 작성한 댓글입니다.
이 댓글은 2005-06-08 11:31에 마지막으로 수정되었습니다. Edit

역시 여리 선배님이 짠게 빠릅니다.

ㅠ.ㅠ

윈 ~

역시 경력은 못따라 가나봐요 ~

열심히 해야쥐 으싸 으싸~

 

석이님이 2005-06-08 11:49에 작성한 댓글입니다. Edit

* 나머지 갱신일을 제외한 데이터는 같거나 출력할 필요가 없으면 이방법이 어떨런지요

 

select 이름,max(갱신일),전화번호,주소 from temp_table group by 이름,전화번호,주소

 

운가라님이 2005-06-28 18:41에 작성한 댓글입니다.
이 댓글은 2005-06-28 18:43에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
2013선택월의 주만 구할 수 있는 스크립트 급구합니다. [5]
한스
2005-06-08
3345
2012[접속에러18456]접속에러 원인 좀알려줘요 [1]
이지송
2005-06-08
6379
2011데이터 베이스 문제 입니다. 한번 풀어보세요 [11]
석이
2005-06-08
7698
2010쿼리를 어떻게 맹그러야할지... [4]
준팔이
2005-06-07
2804
2009사용자별 게시판 생성시... [2]
조나단
2005-06-07
2472
2008스케줄, 링크드서버관련 오류입니다. 답글 좀 주세요 ㅜㅜ
손님
2005-06-07
3999
2007PC서버에서 실제 서버로 옮기고 느려졌어요. [1]
bokting
2005-06-07
2142
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.024초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다