2012-09-04 2 views
0

주어진 다음의 표에 따라 컬럼의 순열을 추가합니다 :SQL DB2 저장 프로 시저가 다른 열

tableA:  | tableB: 
       | 
col1 col2  | col3 col4 
----------- | ---------- 
1  4  | 1  x 
2  5  | 2  x 
3  6  | 1  z 
       | 2  z 
       | 3  z 

내가 COL3의 값을 수정하여, TableB의 일부 행을 추가 DB2에 저장 프로 시저를 작성하려면 자신의 tableA에서 매핑 (1-4, 2-5, 3-6), 그래서 이러한 행에 추가 :

   | 4  A1 -> (only 1 changed to its mapping value 4) 
       | 2  A1 

       | 1  B1 
       | 5  B1 -> (only 2 changed to its mapping value 5) 

       | 4  C1 -> (1 changed to its mapping value 4) 
       | 5  C1 -> (and 2 changed to its mapping value 5) 
,536 : col4 = x는, 이러한 행이 TableB의 추가 할 필요가 찾고 행함으로써

col4 = z는, 이러한 행이 TableB의 추가 할 필요가 찾고 행으로 내 예제에서 내가 가진 것을

   | 4  A2 -> (only 1 changed to its mapping value 4) 
       | 2  A2 
       | 3  A2 

       | 1  B2 
       | 5  B2 -> (only 2 changed to its mapping value 5) 
       | 3  B2 

       | 1  C2 
       | 2  C2 
       | 6  C2 -> (only 3 changed to its mapping value 6) 

       | 4  D2 -> (1 changed to its mapping value 4) 
       | 5  D2 -> (and 2 changed to its mapping value 5) 
       | 3  D2 

       | 4  E2 -> (1 changed to its mapping value 4) 
       | 2  E2 
       | 6  E2 -> (and 3 changed to its mapping value 6) 

       | 1  F2 
       | 5  F2 -> (2 changed to its mapping value 5) 
       | 6  F2 -> (and 3 changed to its mapping value 6) 

       | 4  G2 -> (1 changed to its mapping value 4) 
       | 5  G2 -> (and 2 changed to its mapping value 5) 
       | 6  G2 -> (and 3 changed to its mapping value 6) 

참고 여기 :

  • 2 1 매핑 (2 행으로 표시 : [1, x] 및 [2, x]) 그래서 tableB에 3 행 더 추가했습니다.
  • 3 행 매핑 (3 행 : [1, z], [2, z] 및 [3, z])으로 tableB에 7 행 추가되었습니다.

tableB에 4 대 1 매핑 (4 행으로 표시)이있는 경우 15 개의 추가 행을 추가해야했습니다. 내가 TableB의 (5 행으로 표시) 5 1 매핑이 있다면
31 개 행이 등등 ...

(TABLEA의 사람들과 이러한 매핑을 혼동하지 마십시오. 있습니다를 추가 할 수 있었다 다른)

+0

설명하는 과정은 아직 이해하기 힘듭니다. 실제 출력물을 원하는대로 표시 할 수 있습니까? 특히 '열 추가'라고 말하기는하지만 _rows _ _을 (를) 추가하려고하는 것처럼 들립니다. –

+0

예. 실수였습니다 ... 행을 의미합니다. 그래서 tableB만이 적절한 행을 추가함으로써 변경됩니다. (예제에서 설명한 것과 같이 - [4, A1], [2, A1], [1, B1], ..., [5, G2] , [6, G2]). –

+0

좋아요, 당신이하려는 것을 얻은 것 같아요. 가능한 모든 매핑 조합을 생성하려고합니다. 그러나 'A1', 'B2'등의 항목을 사용하면 혼란 스럽습니다 (생성하지 않을 수있는 방법이 없으므로 표가없는 경우는 제외). 나는 당신이 단지 '그룹'을 정의하기 위해 그것들을 사용하고 있다고 가정하고, 값은 실제로 '매핑 된'값이거나 원래 있던 값이되어야합니다 (만약 그렇다면 일치하도록 결과 데이터를 변경하십시오) . 나는 물어야한다. .. 왜? –

답변

0

나를 이해하기가 어렵다.

각 하위 집합을 삭제 한 다음 현재 매핑을 삽입하는 것이 가장 좋을 것이라고 생각합니다. (델타를 찾아내는 것과는 대조적으로)

이것은 이렇게 비정규 화하지 않는 좋은 이유 인 것처럼 보입니다.

+0

질문을 명확하게 편집했습니다 ... 답변 해 주셔서 감사합니다. –

관련 문제