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 3606 게시물 읽기
No. 3606
[긴급]Join 문제입니다.
작성자
김현지(beforerain)
작성일
2007-07-04 11:43
조회수
2,789

MS SQL은 잘 안써봤는데..
테이블 조인하는데 이렇게 해결이 안되기는 또 처음이네요..

A 테이블에  회원고유번호, 회원명이 있고
B 테이블에 회원고유번호, 통화날짜

이렇게 있을떄..
A의 테이블은 Unique한 회원고유번호가 있고 B테이블은  여러건의 회원아이디를 가질 수 있겠죠.


두개의 테이블을 조인하여 통화날짜별로 조회하려면..

Select B.고유번호, B.회원명, B.통화날짜
from A , B
where A.고유번호 = B.고유번호
group by B.고유번호

이렇게 하면 되는거 아닌가요?

근데 이렇게하면
Sql Enterprise Manger에서

Select B.고유번호, B.회원명, B.통화날짜
from A INNER JOIN B on A.고유번호 = B.고유번호
group by B.고유번호

그런후에 query 를 실행하면

". B.통화날짜 열이 집계함수나 group by 절에 없으므로 select 목록에서 사용할수 없습니다" 이렇게 나옵니다.

이 말만 보면 group by에 사용된 열의 집계함수(max 나 카운트 등)를 사용해야된다는 얘기인데..
그렇다면 select 에서 찾을게 수십개가 되는데 그걸 모두 group by 해야된다는 말도안되는 상황이... ㅠㅠ

distinct도 사용해보았는데 join할 경우는 distinct함수가 안먹던데요.

테이블조인이 이렇게 복잡해서야..

고수님들의 조언을 바랍니다.

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

통화날짜별로 보고자하는거라면 group 에  B.회원명, B.통화날짜가 추가가 되어야 하구요.


Select B.고유번호, B.회원명, B.통화날짜

from A , B

where A.고유번호 = B.고유번호

group by B.고유번호 ,B.회원명, B.통화날짜 


조인을 할경우 distinct가 안먹는게 아니라 내용이 다르면 distinct를 해도 나오게 됩니다. 


샘플내역으로 어떠한 자료를 어떻게 보여 주고 싶은지를 표형하심이 좋을듯합니다.


내용상 group by 부분만 수정하시면 문제는 없을듯한데...


지나가다가님이 2007-07-04 12:02에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
3611Toad For Sql Server 쓰고 있습니다. 레코드 수정 안되는 문제..
초보
2007-07-05
2427
3610기능에 대해...
d1n0
2007-07-04
2035
3609초간단 트리거 한번 봐주세요~! [1]
디비깨기
2007-07-04
3115
3606[긴급]Join 문제입니다. [1]
김현지
2007-07-04
2789
3605Self join 문제(도와 주세요) [2]
고형석
2007-07-04
2435
3603mdf, ldf 메모장으로 수정이 가능한가요?? [1]
빛의바다
2007-07-03
2843
3602테이블 Join문제입니다. (도와주세요ㅠㅠ) [1]
2007-07-03
2996
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다