有表1,字段有A,B,C
表2, 字段有A,D
表3, 字段有A,D
表4, 字段有A,D
表5, 字段有A,D

解决方案 »

  1.   

    復制錯了。try
    Select
    T.A,
    T.B,
    (Case C When 'A' Then A.D When 'B' Then B.D When 'C' Then C.D When 'D' Then D.D Else '' End) As D
    From
    表1 T
    Left Join
    表2 A
    On T.A = A.A
    Left Join
    表3 B
    On T.A = B.A
    Left Join
    表4 C
    On T.A = C.A
    Left Join
    表5 D
    On T.A = D.A
      

  2.   

    这样?select A,
    B,
    case C when 'a' then 表2.D when 'b' then 表3.D when 'c' then 表4.D else 表5.D end as C
    from 表1
    left join 表2 on 表1.A=表2.A
    left join 表3 on 表1.A=表3.A
    left join 表4 on 表1.A=表4.A
    left join 表5 on 表1.A=表5.A
      

  3.   

    --創建測試環境
    Create Table 表1
    (A Int,
     B Int,
     C Char(1))
    Insert 表1 Select 1, 1, 'A'
    Union All Select 2, 2, 'B'
    Union All Select 3, 3, 'C'
    Union All Select 4, 4, 'D'Create Table 表2
    (A Int,
     D Varchar(10))
    Insert 表2 Select 1, 'A1'Create Table 表3
    (A Int,
     D Varchar(10))
    Insert 表3 Select 2, 'B1'Create Table 表4
    (A Int,
     D Varchar(10))
    Insert 表4 Select 3, 'C1'Create Table 表5
    (A Int,
     D Varchar(10))
    Insert 表5 Select 4, 'D1'
    GO
    --測試
    Select
    T.A,
    T.B,
    (Case C When 'A' Then A.D When 'B' Then B.D When 'C' Then C.D When 'D' Then D.D Else '' End) As D
    From
    表1 T
    Left Join
    表2 A
    On T.A = A.A
    Left Join
    表3 B
    On T.A = B.A
    Left Join
    表4 C
    On T.A = C.A
    Left Join
    表5 D
    On T.A = D.A
    GO
    --刪除測試環境
    Drop Table 表1, 表2, 表3, 表4, 表5
    --結果
    /*
    A B D
    1 1 A1
    2 2 B1
    3 3 C1
    4 4 D1
    */
      

  4.   

    这样:select A,
    B,
    isnull(isnull(isnull(表2.D,表3.D),表4.D),表5.D) as Dfrom 表1
    left join 表2 on 表1.A=表2.A
    left join 表3 on 表1.A=表3.A
    left join 表4 on 表1.A=表4.A
    left join 表5 on 表1.A=表5.A
      

  5.   

    是这样select A,
    B,
    isnull(isnull(isnull(表2.D,表3.D),表4.D),表5.D) as Dfrom 表1
    left join 表2 on 表1.C=表2.A
    left join 表3 on 表1.C=表3.A
    left join 表4 on 表1.C=表4.A
    left join 表5 on 表1.C=表5.A
      

  6.   

    Haiwer(海阔天空) ( ) 信誉:138  2007-07-17 16:03:12  得分: 0  
     
     
       是这样select A,
    B,
    isnull(isnull(isnull(表2.D,表3.D),表4.D),表5.D) as Dfrom 表1
    left join 表2 on 表1.C=表2.A
    left join 表3 on 表1.C=表3.A
    left join 表4 on 表1.C=表4.A
    left join 表5 on 表1.C=表5.A------------這樣不一定正確叻。如果表1中的ID在表2,表3,表4,表5中都有的話,就有問題了。