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 4641 게시물 읽기
No. 4641
두개의 테이블에서 값 가져오기
작성자
조수한(sp88)
작성일
2009-02-13 17:50
조회수
6,351

다음과 같은 테이블 두개가 있습니다.

tbPackLimit

iUserID sPackIndex tmLimit
47 1 2009-02-13 17:44:00
47 2 2009-02-14 08:16:00

tbPackName
iUserID sPackIndex szPackName
47 0 'Pack Name 0'
47 2 'Pack Name 2'

위의 두개의 테이블을 합쳐서 아래와 같은 결과물을 얻고 싶습니다.

sPackIndex szPackName szLimit
0 'Pack Name 0' ''
1 '' '090213 174400'
2 'Pack Name 2' '090214 081600'

두 테이블에 있는 모든 sPackIndex는 출력하고
상대 테이블에 없는 데이터 (예를 들어 sPackIndex = 0 의 Limit등 )는 NULL이 아닌 공란을 이용해서 출력하고자 합니다.

고수님들 도와주세요 ㅜㅜ
이 글에 대한 댓글이 총 1건 있습니다.

COALESCE ( expression [ ,...n ] ) : 인수 중에서 Null이 아닌 첫 번째 식을 반환합니다.
와 Full Outer Join 을 이용하시면 원하시는 결과를 만드실수 있을겁니다.


with  tbPackLimit
as (
select 47 iUserID, 1  sPackIndex ,'2009-02-13 17:44:00'  tmLimit union all
select 47 iUserID, 2  sPackIndex ,'2009-02-14 08:16:00'  tmLimit ) ,

tbPackName
as (
   
select 47 iUserID ,0 sPackIndex ,'Pack Name 0'  szPackName union all
select 47 iUserID ,2 sPackIndex ,'Pack Name 2'   szPackName )


 select  COALESCE (a.sPackIndex,b.sPackIndex) sPackIndex
        ,isnull(b.szPackName ,'' ) szPackName
        ,isnull(a.tmLimit,'' ) szLimit
   from tbPackLimit a  Full Outer Join tbPackName b  on a.sPackIndex =b.sPackIndex
  order by COALESCE (a.sPackIndex,b.sPackIndex)

지나가다가님이 2009-02-13 20:09에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
4644특정 테이블에 접속 해 있는 session의 갯수를 알 수 있을 까요?
오성호
2009-02-17
5634
4643mssql 도와주세요..
mssql
2009-02-16
5299
4642커서를 사용한 프로시져 질문입니다.
장용석
2009-02-13
6211
4641두개의 테이블에서 값 가져오기 [1]
조수한
2009-02-13
6351
4639트리구조에 관한 질문입니다 [3]
조인국
2009-02-12
6521
4638인덱스 정렬과 order by 정렬시 결과가 틀리게 나옵니다 [1]
이윤영
2009-02-12
5703
4637DELETE 질문이요~~ [1]
전준홍
2009-02-12
5304
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다