2017-06-29 37 views
-1

我在Oracle数据库三个表如下所示:连接表

Training_Calendar_hdr

----------------------------- 
Training_Id  Training_Name 
----------------------------- 
T1    Physics 
T2    Chemistry 
T3    Maths 

Training_Employee_mapping

--------------------------- 
Training_Id Employee_Id 
--------------------------- 
T1    E001 
T1    E003 
T1    E007 
T3    E001 
T3    E010 
T3    E008 
T3    E011 

Employee_Details

--------------------------- 
Employee_Id Designation 
--------------------------- 
E001  Engineer 
E002  Professor 
E003  Businessman 
E004  Engineer 
E005  Govt. Service 
E006  Unemployed 
E007  Engineer 
E008  Govt. Service 
E009  Professor 
E010  Unemployed 
E011  Professor 

我需要通过连接三个表的结果如下所示:

-------------------------------------------------------------------------------- 
    Training_Name Engineer Businessman Unemployed Professor Govt. Service 
    -------------------------------------------------------------------------------- 
    Physics   2   1          

    Maths    1      1   1   1  
+1

你有没有试图自己做这个? – Jacobm001

+0

您是否希望在运行时从**指定**列中的值中获取列名?或者在编写查询时对它们进行硬编码?你很可能想要前者。这不能用纯SQL完成 - 它需要“动态SQL”(尽管名称不是SQL),这在大多数情况下是数据模型有缺陷的标志。将“名称”显示为列名可解决哪些业务问题? – mathguy

回答