trySelect
A.编号,
SUM(Case TYPE When 1 Then C.t1 When 1 Then C.t2 Else 0 End) As 总金额
From
TAB1 A
Inner Join
TAB2 B
On A.编号 = B.编号
Inner Join 
TAB3 C
On B.PS = C.PS
Where A.FLAG = 1

解决方案 »

  1.   

    有一點錯誤,修改下
    Select
    A.编号,
    SUM(Case TYPE When 1 Then C.t1 When 2 Then C.t2 Else 0 End) As 总金额
    From
    TAB1 A
    Inner Join
    TAB2 B
    On A.编号 = B.编号
    Inner Join 
    TAB3 C
    On B.PS = C.PS
    Where A.FLAG = 1
    Group By
    A.编号
      

  2.   

    Create Table TAB1 
    (编号 Char(3),
     TYPE Int,
     FLAG Bit)
    Insert TAB1 Select '001',    1,0
    Union All Select '002',    1,1
    Union All Select '003',    2,1Create Table TAB2
    (编号 Char(3),
     PS Varchar(10))
    Insert TAB2 Select '003',   'A3'
    Union All Select '003',   'A4'
    Union All Select '003',   'A5'
    Union All Select '002',   'A3'
    Union All Select '002',   'A5'
    Union All Select '001',   'A3'
    Create Table TAB3
    (ps Varchar(10),
     t1 Int,
     t2 Int)
    Insert TAB3 Select 'A3',    30,     50
    Union All Select 'A4',    40,     20
    Union All Select 'A5',    20,     10
    GO
    Select
    A.编号,
    SUM(Case TYPE When 1 Then C.t1 When 2 Then C.t2 Else 0 End) As 总金额
    From
    TAB1 A
    Inner Join
    TAB2 B
    On A.编号 = B.编号
    Inner Join 
    TAB3 C
    On B.PS = C.PS
    Where A.FLAG = 1
    Group By
    A.编号
    GO
    Drop Table TAB1, TAB2, TAB3
    --Result
    /*
    编号 总金额
    002 50
    003 80
    */