2015-10-02 16 views
-2
SELECT * 
    FROM 
     (SELECT * 
       FROM Dim_Placement pl 
       OUTER JOIN 
       Fact_Media_KPI j1 
       ON pl.SK_Placement_ID = j1.FK_SK_Placement_ID 
      ) a1 
      OUTER JOIN 
      (SELECT j1.*, pa.Package_Type, pa.Placement_Type, pa.Cost_Method, pa.Package_Name, pa.Package_Start_Date, pa.Package_End_Date,pa.Unit_Amount,pa.Unit_Rate,pa.Unit_Type 
       FROM Dim_Package pa 
       OUTER JOIN 
       Fact_Media_KPI j1 
       ON pl.SK_Package_ID = j1.FK_SK_Package_ID) a2 
       ON a1.SK_Fact_MEDIAKPI_ID = a2.SK_Fact_MEDIAKPI_ID) b1 

     OUTER JOIN 

     (SELECT j1.*, b.Brand_Name, b.Op_Co, b.Category 
       FROM Dim_Brand b 
       OUTER JOIN 
       Fact_Media_KPI j1 
       ON pl.SK_Brand_ID = j1.FK_SK_Brand_ID 
      ) a3 
     OUTER JOIN 
     (SELECT j1.*, c.Budget_Campaign_Code, c.Campaign_Start_Date, c.Campaign_End_Date, c.Campaign_Status 
      FROM Dim_Campaign c 
      OUTER JOIN 
      Fact_Media_KPI j1 
      ON pl.SK_Campaign_ID = j1.FK_SK_Campaign_ID 
      ) a4 
     ON a3.SK_Fact_MEDIAKPI_ID = a4.SK_Fact_MEDIAKPI_ID) b2 

    ON b1.SK_Fact_MEDIAKPI_ID = b2.SK_Fact_MEDIAKPI_ID) c1 

    OUTER JOIN 

     (SELECT j1.*, s.Site_Name 
      FROM Dim_Site s 
      OUTER JOIN 
      Fact_Media_KPI j1 
      ON pl.SK_Site_ID = j1.FK_SK_Site_ID 
      ) a5 
     OUTER JOIN 

     (SELECT j1.*,c.Creative_Adname, c.Creative_Filename, c.Click_Through_URL, c.Creative_ID, c.Creative_Size c.Creative_Type, c.Video_Length 
      FROM Dim_Creative c 
      OUTER JOIN 
      Fact_Media_KPI j1 
      ON pl.SK_Site_ID = j1.FK_SK_Site_ID 
      ) a6 
     ON a5.SK_Fact_MEDIAKPI_ID = a6.SK_Fact_MEDIAKPI_ID) b3 

     OUTER JOIN 

     (SELECT j1.*, d.Date 
      FROM Dim_Site s 
      OUTER JOIN 
      Fact_Media_KPI j1 
      ON pl.SK_Date_ID = j1.FK_SK_Date_ID 
      ) a7 
     ON b3.SK_Fact_MEDIAKPI_ID = a7.SK_Fact_MEDIAKPI_ID) c2 
    ON c1.SK_Fact_MEDIAKPI_ID = c2.SK_Fact_MEDIAKPI_ID 
    WHERE d.Date >= '2015-01-01'; 

的间距已经得到神可怕太出了什么问题 - 有这么多的加盟,这个错误主要是没有意义的Message156 Incorect附近有语法关键字“加入”/SQL服务器(以及加入?)

我越来越被称为156错误的错误 - 附近的语法错误JOIN

一个问题 - 这联接

据我所知,这是合法的做嵌套子查询相关的想法?

(同样,这个大小,使我很难发布。为什么要叠加为什么?)

+1

缺少加盟条件(ON子句),例如在a5之后。 – jarlh

回答

2

你的意思是OUTER JOIN只适用于你的JOIN s,但你需要指定什么类型。它们可以是RIGHT OUTER JOIN,LEFT OUTER JOINFULL OUTER JOIN

请看看不同类型的OUTER JOIN这篇文章以了解更多信息:What is the difference between "INNER JOIN" and "OUTER JOIN"?

+1

在这种特殊情况下,我怀疑一个左外连接最有可能是想要的。 – HLGEM

相关问题