2012-04-20 2 views
0

(제 테이블 열 값에 제 표의 행 값)에 기초하여 다른SQL - 하나 개의 테이블을 가입 아래와 같이 보이는 I 두 테이블을 가지고

첫 번째 테이블 :

DealNum  CurrencyValue  CurrencyCode  Date 

    110    100     AA   01/12/2011 
    111    200     AB   01/11/2011 
    112    120     AC   01/10/2011 
    113    20     AA   01/11/2011 
    110    103     AD   01/12/2011 
    115    200     AD   01/11/2011 
    119    120     AG   01/10/2011 
    130    20     AK   01/11/2011 

번째 테이블

CurrencyCode  OCT  NOV  DEC  JAN .. 

     AA    0.91  0.88  0.9  0.94 
     AB    0.9  0.8  0.96 0.89 
     AC    0.81  0.79  0.82 0.84 
     AD    0.4  0.41  0.42 0.39 
     AE    0.9  0.92  0.91 0.94 
     AF    0.8  0.82  0.83 0.81 

지금 나는 다음과 같은 조건을 새 열에서 첫 번째 테이블에 두 번째 테이블에서 데이터를 추가 할

1.It has to do based on the CurrencyCode and month 
2.If the deal is from DEC and currencyCode is AA , then it has to take the value 0.9, 
    if the deal is from NOV and currencyCode is AA , then it has to take the value 0.88.. 

그래서, 결과는 내가 두 번째 테이블에서 달의 열 값을 첫 번째 테이블에서 달의 행 값을 비교하여이 작업을 수행하는 방법에 대한 단서가 없다이

DealNum  CurrencyValue  CurrencyCode  Date  NewColumn 

    110    100     AA   01/12/2011  0.9 
    111    200     AB   01/11/2011  0.8 
    112    120     AC   01/10/2011  0.81 
    113    20     AA   01/11/2011  0.88 
    110    103     AD   01/12/2011  0.42 
    115    200     AD   01/11/2011  0.41 
    119    120     AG   01/10/2011   -- 
    130    20     AK   01/11/2011   -- 

처럼 보일 것입니다. 이걸 도와주세요.

미리 감사드립니다.

건배, Harish.

답변

1

두 번째 테이블이 잘 설계되지 않았더라도이 작업은 효과가 있습니다. MONTH

  • CASE
    • SELECT DealNum  
           , CurrencyValue  
           , CurrencyCode  
           , Date 
           , Deal = 
           CASE MONTH(t1.Date) 
            WHEN 1 THEN t2.JAN 
            WHEN 2 THEN t2.FEB 
            WHEN 3 THEN t2.MAR 
            -- ..... 
            WHEN 10 THEN t2.OCT 
            WHEN 11 THEN t2.NOV 
            WHEN 12 THEN t2.DEC 
           END 
      FROM Table1 t1 
      INNER JOIN Table2 t2 ON t1.CurrencyCode = t2.CurrencyCode 
      

  • +0

    감사합니다 팀 Schmelter ..이 사람이 나를 위해 잘 작동 .. 아주 좋습니다. 그러나 여기서 두 번째 테이블의 열 이름 (Months)이 매번 변경되는 경우 t1.date = t2 (XYZ 월), t2.Jan 또는 t2와 같이 동적 인 방식으로 변경됩니다. 2 월 ??? 도와 주셔서 다시 한번 감사드립니다 :)) – harry

    관련 문제