我要从A表中查出数据,但是要显示的字段是从B表中取出的…… 
我想根據B表中的DetailID(QID=’090001’)得到A表中(QID=’090001’)對應的總分是多少?
如B表的DetailID=1就對應了A表中Detail1_Score 5分
  B表的DetailID=10就對應了A表中Detail10_Score 0分
這樣A表中QID=’090001’的總分就是5+0=5分A表相關的資料如下:
Qid,    Item_Section, Item_Group, Itemid,Detail1_Name,Detail1_Score,Detail2_Name,Detail2_Score……Detail10_Name,Detail10_Score
090001  CL               CL3      1      問題1           5         問題2            4            null                null
090001  CL               CL3      2      問題1           9         問題2            8            問題10              0B表相關的資料如下:
Qid,    Item_Section,  Item_Group,   Itemid,  DetailID
090001  CL               CL3           1       1
090001  CL               CL3           2       10

解决方案 »

  1.   

    select sum(decode(B.DetailID,1,A.Detail1_Score,
                                 2,A.Detail1_Score2,
                                 3,A.Detail1_Score3,
                                 4,A.Detail1_Score4,
                                 5,A.Detail1_Score5,
                                 6,A.Detail1_Score6,
                                 7,A.Detail1_Score7,
                                 8,A.Detail1_Score8,
                                 9,A.Detail1_Score9,
                                 10,A.Detail1_Score10)) totalScore
    from A,B 
    where A.Itemid=B.Itemid 
      

  2.   

    少了个关联条件
    select sum(decode(B.DetailID,1,A.Detail1_Score,
                                 2,A.Detail1_Score2,
                                 3,A.Detail1_Score3,
                                 4,A.Detail1_Score4,
                                 5,A.Detail1_Score5,
                                 6,A.Detail1_Score6,
                                 7,A.Detail1_Score7,
                                 8,A.Detail1_Score8,
                                 9,A.Detail1_Score9,
                                 10,A.Detail1_Score10)) totalScore
    from A,B 
    where A.Itemid=B.Itemid
    amd A.Qid=B.Qid
      

  3.   

    select b.qid,decode(b.detailID,1,a.detail1_score,2,a.detail2_score,.......) score
    from a,b 
    where a.qid=b.qid
      

  4.   

    取合计再加个sum  group by