2015-09-04 47 views
1

我想加入3个表,以得到如下结果:加入多个字段3个表

 Table_A: 
    Customer Product  Div_Num  Importance 
    C1   P1   X   .5 

 
    Table_B: 
    Div_Num   Div_Name 
    X    Arizona 

 
    **Table_C:** 
    *Customer Product  Sales* 
    C1  P1  15 
    C1  P1  20 
 **Desired Results:** 
    *Customer Product  Div_Name Importance Sum(Sales)* 
    C1   P1   Arizona  .5   35 
Select Table_A.Customer, Table_A.Product, Table_B.Div_Name, Table_A.Importance, sum(Table_C.Sales) 
    From Table_A 
     Inner Join Table_B 
     On Table_A.Div_Num = Table_B.Div_Num 
     Inner Join Table_C 
     On Table_A.Customer = Table_C.Customer And Table_A.Product = Table_C.Product 
    Where Table_A.Product IN ('P1', 'P2', 'P3') 

我得到错误42S02(29):关系不存在

+1

尝试简化您的查询,并逐步增加了复杂性,直到你遇到错误,所以你可以看到是什么原因造成的。例如,从SELECT * FROM Table_A开始WHERE Table_A.Product IN(P1,P2,P3)。如果可行,请将联接添加到Table_B,依此类推。 –

+0

我应该提到当我使用总和项添加第二个连接时出现错误。其他的一切工作正常之前,我把它放在 – Adam12344

回答

0

SQL FIDDLE DEMO

你忘了GROUP BY

Select Table_A.Customer, Table_A.Product, Table_B.Div_Name, Table_A.Importance, sum(Table_C.Sales) 
From Table_A 
    Inner Join Table_B 
    On Table_A.Div_Num = Table_B.Div_Num 
    Inner Join Table_C 
    On Table_A.Customer = Table_C.Customer And Table_A.Product = Table_C.Product 
Where Table_A.Product IN ('P1', 'P2', 'P3') 
GROUP BY Table_A.Customer, Table_A.Product, Table_B.Div_Name, Table_A.Importance 
+0

我的错误,原代码中有单引号(我编辑它)。该错误实际上是在我添加第二个加入 – Adam12344

+0

完成后进入的。检查更新。 –

+0

你好亚当。这是否解决了你的问题? –

0

我建议总和是一组由项。除非你有一个小组来创建你将要总结的卷起,否则你不能拥有它。你可能需要:

group by Table_A.Customer, Table_A.Product, Table_B.Div_Name, Table_A.Importance