테이블 정보는 다음과 같습니다:


테이블 2개 : table test1, table test2

컬럼(필드) :

table test1 - b_number, title, make_name, year1, year2, year3, sp_book, c_no(join 값)

table test2 - auth_name, auth_name_year, c_title, g_no, c_no(join 값)


위에서도 언급했지만, c_no값이 두 테이블을 연결하는(조인하는) 컬럼입니다.

이해하기 쉽게 테이블 test1을 책 제목을 입력하는 테이블로, 테이블 test2를 책에 있는 세부 목록을 입력하는 테이블로 이해하시면 편하겠습니다.


test1에 초기 입력 시 책제목(title), 출판사(make_name), 출판년도 등을 입력하는데(year1), year2와 year3는 미입력 상태입니다.

test2에서는 해당 책에 대한 저자(auth_name), 저자 출생년도(auth_name_year), 소제목(c_title) 등을 입력합니다.


test1에서는 한 권의 책에 대해 한 번 입력이 원칙이지만, 예외적으로 책의 분량 상 2번 이상으로 입력하는 경우도 있습니다.
만약 한 권의 책을 임의로 2권으로 나누었다면, 테이블에 2번을 입력하게 됩니다. 제목을 입력하는 형태는 다음과 같습니다.
(예 : XXXX(2-1), XXXX(2-2)...)

만약 동일한 책을 나누어 입력하면 첫 번째 sp_book값은 1이 되고, 두 번째 sp_book값은 2가 되고, 레코드는 2개가 됩니다.

책을 나누어 입력했지만, 결국 동일한 책을 분량상 임의로 나누어 입력한 것이므로 DB상에서는 같은 책으로 인식합니다.

즉, sp_book값만 다르고 b_number값은 동일합니다.

다시 정리하자면, 전체 두 권의 책이 있다고 가정했을 때, 하나는 책의 분량상 두개로 나누어 입력을 해야하고(XXXX(2-1), XXXX(2-2)),
한 권은 나누지않고 입력할 경우, 총 table1에서의 레코드 수는 3개가 됩니다.


테이블 구조는 다음과 같습니다.


<test1>


b_number     title       make_name     year1     year2     year3     sp_book     c_no(table2와 join 값)
-----------------------------------------------------------------------------------------------------
 0001       제목1(2-1)    OOO          2000        null        null           001          001
 0001       제목1(2-2)    OOO          2000        null        null           002          002
 0002       제목2            XXX          2010        null        null           001          003


<test2>
    
auth_name     auth_name_year     c_title     g_no     c_no(table1과 join 값)
------------------------------------------------------------------------------------
     저자1         19600423            생활1        001      001
     저자2         19740817            생활2        002      001
     저자3         19690711            생활3        003      001
     저자4         19710609            생활4        004      002
     저자5         19750715            생활5        005      002
     저자6         19670227            생활6        006      003   


여기서 질문 드리겠습니다.


test1에서 b_number값이 0001인 year2값에 test2에 있는 auth_name_year값 중 '1960(저자출생년도 최소값 중 앞 4자리)'을 year2값에,
'1975(저자출생년도 최대값 중 앞 4자리)'을 year3에 넣고, b_number값이 0002인 year2값에는 test2에 있는 '1967', year3값에는 '1967'값을 넣고 싶습니다. 즉, test1에서의 b_number값이 같으면 year2와 year3에 동일한 값을 넣고자 합니다.


쿼리나 프로시저로 가능할 지 궁금합니다.


답변주시면 감사하겠습니다.^^


No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 36259
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 18857
8283 MSSQL 2008 R2 버전의 DB 최대용량 제한이 있나요? [5] 냠냠10 2014.10.19 9075
8282 고수님만.. [1] 토깽이 2014.10.19 2126
8281 SQL 합계 여쭤봅니다. [1] 뵴뵴 2014.10.19 2529
8280 순위 및 중복제거 쿼리 문의드립니다. [2] 김미영_279087 2014.10.17 3377
8279 GROUP BY중 특정 칼럼만 말일값을 가져올 수 있을련지. [2] redfunky 2014.10.16 2651
8278 DB 복사 시 복사본에 삭제된 데이터 유지가 가능한가요? [1] 조굴 2014.10.16 2458
8277 윈도우7 64비트 2008 설치문의..ㅠㅠ 빡끄쎄엠 2014.10.16 2511
8276 Insert 쿼리 속도에 대해서 좀 여쭙겠습니다 (_ _) ADA 2014.10.15 3301
8275 구분자로구분되어있는 필드 합치려고 하는데 [1] fame 2014.10.15 1857
8274 쿼리 조언좀 부탁드립니다! [1] 검마혈 2014.10.15 2002
8273 외래키 UPDATE 질문 있습니다. [2] Juventus 2014.10.15 5036
» 쿼리나 프로시저 작성 부탁드립니다. [1] 얼음왕자 2014.10.15 2651
8271 비교제외 하는 조인문 질문 입니다. [6] ssunsori 2014.10.15 2823
8270 합계 나오게 ^^ [2] 마힐링 2014.10.15 2499
8269 쿼리 비용 질문있습니다. [2] ninanio3 2014.10.15 2145
8268 xp_cmdshell 결과 NULL [1] catchv 2014.10.15 2944
8267 누계 잔액 표시 질문 드립니다. [5] 슈토파이터 2014.10.15 3842
8266 date 형과 time 형 사용시 날짜 비교 방법 문의 입니다. [2] 우영호수 2014.10.15 2897
8265 2000 -> 2005 이전시 [1] 엔지니어 2014.10.14 2696
8264 행열 바꿔서 테이블 결합 [1] park87 2014.10.14 2677





XE Login