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


테이블 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 2023년 1월 - SQLER의 업데이트 강좌 리스트 코난(김대우) 2023.01.02 598
» 쿼리나 프로시저 작성 부탁드립니다. [1] 얼음왕자 2014.10.15 2607
8271 비교제외 하는 조인문 질문 입니다. [6] ssunsori 2014.10.15 2774
8270 합계 나오게 ^^ [2] 마힐링 2014.10.15 2454
8269 쿼리 비용 질문있습니다. [2] ninanio3 2014.10.15 2103
8268 xp_cmdshell 결과 NULL [1] catchv 2014.10.15 2885
8267 누계 잔액 표시 질문 드립니다. [5] 슈토파이터 2014.10.15 3776
8266 date 형과 time 형 사용시 날짜 비교 방법 문의 입니다. [2] 우영호수 2014.10.15 2792
8265 2000 -> 2005 이전시 [1] 엔지니어 2014.10.14 2663
8264 행열 바꿔서 테이블 결합 [1] park87 2014.10.14 2634
8263 substring 관련 문의하나만 드릴께요.. [1] SQL왕왕초보 2014.10.14 2075
8262 간단해 보이는 쿼리인데 멘붕 입니다.. 조언 부탁드립니다. [6] 단비령 2014.10.14 2563
8261 트랜잭션 로그 백업에 관한 문의 드립니다. [2] 세균장군 2014.10.14 2365
8260 트리거로 테이블 update시 질문이요 [1] 왕만두와우동 2014.10.13 2033
8259 한 테이블 내에서 내용 복사 생성및 덮어씌우기 [1] park87 2014.10.13 2656
8258 ssms 로 데이터베이스 복원시 질문이 있습니다. [2] alima 2014.10.13 2701
8257 begin try, begin tran 사용 효율성? [3] 흑흑 2014.10.13 2323
8256 날짜 쿼리 질문입니다. [1] 상남자 2014.10.13 2182
8255 Transaction 질문입니다. 희망나라 2014.10.12 2279
8254 하위 쿼리를 EXISTS로 정의하지 않은 경우에는 SELECT 목록에서 식을 하나만 지정할 수 있습니다. [1] 태지야호 2014.10.12 12682
8253 장애 발생 관련질문드립니다 아수라발발타 2014.10.10 4687





XE Login