PGR21.com
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
Date 2012/02/03 14:23:32
Name 율이
Subject 연습문제를 보고 쿼리를 작성해봤는데요. 좀 봐주세요~
문제 : 이동전화회사에서 가입자를 관리하기 위한 요구사항을 보고 테이블 생성 및 데이터 조회를 하라.

1. 각 가입자는 주민등록번호와 주소를 가지고 있다
2. 각 가입자는 하나 이상의 전화번호에 가입할 수 있다
3. 전화번호는 국과 번호가 있다(예 : 974-2610에서 974는 국, 2610은 번호 이다)
4. 가입자가 가입한 날짜를 가지고 있다
5. 이동전화회사는 여러종류의 부가서비스(ex: 문자메시지, 캐치콜 등)을 제공한다
6. 부가서비스는 부가서비스 이름, 한달 사용료가 있다
7. 각 가입자는 전화번호별로 부가서비스에 하나 이상 가입할 수 있다
8. 가입자가 부가서비스에 가입한 날짜를 가지고 있다.



여기까지가 문제입니다.

이 이후로는 제가 직접 작성한 쿼리입니다.


create table 회원
(가입번호 integer not null
,회원명 varchar(10)
,주민등록번호 varchar(20) not null
,주소 varchar(100)
,전화번호 varchar(20) not null
,전번가입 date
,서비스가입 date
,가입서비스종류 integer
,primary key(가입번호));

create table 부가서비스
(가입번호 integer not null
,가입서비스번호 integer not null
,서비스종류 varchar(20)
,사용료 integer
,primary key(가입번호)
,foreign key(가입번호) references 회원(가입번호));

insert into 회원 values(1, '김태희', '111111-2111111', '경기도 김포시', '987-8888', '2012-02-03', '2012-02-03', 1);
insert into 회원 values(2, '김태희', '111111-2111111', '경기도 김포시', '987-8888', '2012-02-03', '2012-02-03', 2);
insert into 회원 values(3, '김태희', '111111-2111111', '경기도 김포시', '987-9999', '2012-02-05', '2012-02-06', 1);
insert into 회원 values(4, '김태희', '111111-2111111', '경기도 김포시', '987-9999', '2012-02-05', '2012-02-06', 2);
insert into 회원 values(5, '김태희', '111111-2111111', '경기도 김포시', '987-9999', '2012-02-05', '2012-02-06', 3);
insert into 회원 values(6, '김태희', '111111-2111111', '경기도 김포시', '987-9999', '2012-02-05', '2012-02-06', 4);
insert into 회원 values(7, '전지현', '111222-2111111', '경기도 고양시', '988-8128', '2012-02-04', '2012-02-05', 3);
insert into 회원 values(8, '장동건', '121111-1122341', '서울특별시', '981-8288', '2012-02-07', '2012-02-08', 1);
insert into 회원 values(9, '원빈', '111111-1234511', '부산광역시', '911-8238', '2012-02-08', '2012-02-08', 2);

insert into 부가서비스 values(1, 1, '문자메시지', 29000);
insert into 부가서비스 values(2, 2, '발신자번호표시', 1000);
insert into 부가서비스 values(3, 3, '캐치콜 서비스', 500);
insert into 부가서비스 values(4, 4, '컬러링', 1200);



이렇게 테이블 작성 및 데이터를 삽입시켰구요.(제가 임의로 만든 데이터들입니다.)


모든 가입자의 가입 내역을 보기 위해 이렇게 쿼리를 작성하여 검색하였습니다.


select 회원.회원명 as 회원명, 회원.주민등록번호 as 주민등록번호, 회원.주소 as 주소, 회원.전화번호 as 전화번호
,회원.전번가입 as '전화번호 가입일', 부가서비스.서비스종류 as 부가서비스명, 부가서비스.사용료 as 서비스사용료, 회원.서비스가입 as '부가서비스 가입일'
from 회원, 부가서비스
where 회원.가입서비스종류 = 부가서비스.가입서비스번호;



이렇게 하면 1~9번의 조건을 전부 만족하는 쿼리가 출력이 되긴합니다.

그러나 예를 들어 김태희라는 사용자가 999-8888로 문자 메시지와 발신자표시 두개를 가입하였다면, 데이터 출력이 부가서비스 하나의 차이 때문에 두줄로 나오게 됩니다. 나머지 데이터는 전부 같은데 부가서비스만 다르게 해서 두개가 나오죠.

위에서 제가 입력했던 데이터를 위와 같은 쿼리검색으로 출력하게 되면 사용자는 4명뿐이지만 쿼리는 총 9줄로 출력이 됩니다(김태희가 부가서비스나 전화번호가 다르다는 이유로 6개로 출력이 됩니다.)


조건만 만족한다 뿐이지 너무 비효울적인거 같아서요



제가 작성한 테이블이나 검색하는 쿼리문의 내용을 수정하여 간소화 시킬수 있는 방법이 없을까요?

물론 1~9의 조건은 다 만족하면서요.


예를 들어 현재 인원은 4명인데 김태희가 전화번호를 두개 쓰고 첫번째 번호의 부가서비스가 3개, 두번째 부가서비스가 2개라면, 두줄로만 출력되면서 첫번째 번호에 부가서비스가 3개표시, 두번째 번호에는 2개 표시 이런식으로요.

혹시나 제가 작성한 쿼리문에서 불필요한게 있어 삭제해도 상관없는게 있다면 그것도 좀 알려주셨으면 합니다.

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
12/02/03 15:59
수정 아이콘
조회쿼리에서 group by 사용하여 카운트 세시면 됩니다.
12/02/03 16:05
수정 아이콘
조금만 더 상세히 알려주세요..

이해가 잘..
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
126148 연습문제를 보고 쿼리를 작성해봤는데요. 좀 봐주세요~ [2] 율이2761 12/02/03 2761
126147 영어 문법? 질문입니다. [7] 유안1614 12/02/03 1614
126146 에이징 질문입니다 자판1225 12/02/03 1225
126145 40만원대 혹은 그 이하 저렴한 노트북 추천 부탁드립니다. [1] 무얼2109 12/02/03 2109
126144 pgr끊고싶어요 [14] 유비키리2268 12/02/03 2268
126143 영화 레옹이 왜 19세인가요?? [3] 지금만나러갑니다7103 12/02/03 7103
126142 요즘 울트라씬 시기로 어떨까요? [5] Go윤하1609 12/02/03 1609
126141 외장하드 포맷시 '할당 단위 크기' 뭘로 해야되나요? [4] I.A.L42205 12/02/03 42205
126140 컴퓨터 견적좀 봐주세요.. [7] 내목숨을아이유에2054 12/02/03 2054
126139 이 연예인 여성분들 얼굴생김새 공통점이 뭘까요 [12] 레이나2138 12/02/03 2138
126138 강남역근처 수입안경테 파는 곳 [2] Fabolous2473 12/02/03 2473
126137 12학번 대학생 대학교 장학생 질문드려요. [2] 승부사1329 12/02/03 1329
126136 유머집이나 재미있는이야기 많은 책같은게 혹시 있나요? [1] 가슴이아프다1548 12/02/03 1548
126135 LOL챔프 질문입니다. [6] 임승현1600 12/02/03 1600
126133 영화 아저씨에 대한 궁금증 (물론 스포있구요) [1] 한선생1586 12/02/03 1586
126132 지구말고 생명체가 있는 행성이 있을까요? [6] 유안1586 12/02/03 1586
126131 스타2 유저는 어느정도 되는지 알고 싶습니다. [3] Go_TheMarine1730 12/02/03 1730
126129 부모님 휴대폰 갤투 질문입니다. 배려1246 12/02/03 1246
126128 좋은 일본영화가 뭐가 있을까요? [25] 상상.2258 12/02/03 2258
126127 워3 밀리맵 구할데 없나요? [1] RookieKid2594 12/02/03 2594
126126 SQL 질문 하나만 더 할게요.. [4] 율이1525 12/02/03 1525
126125 통일교가 영향력이 큰가요 ? [18] naughty3677 12/02/03 3677
126124 [lol] 정글을 돌때 마을귀환은 얼마나 자주 하시나요? (룬 없이) [15] 꿀멀티2636 12/02/03 2636
목록 이전 다음
댓글

+ : 최근 6시간내에 달린 댓글
+ : 최근 12시간내에 달린 댓글
맨 위로