2011-06-27 97 views
0

工作我使用的MS Access 2007年。每当我键入左连接,我得到,说左连接,不支持一个错误。这里的SQLSQL - LEFT JOIN不会与switch语句

TRANSFORM Count([Letter Status].Customer_ID) AS CountOfCustomer_ID 
SELECT Switch(
      [Race_1]=1,"White", 
      [Race_1]=2,"Black", 
      [Race_1]=3,"Asian", 
      [Race_1]=4,"Hispanic/Latino", 
      [Race_1]=5,"American Indian/ Alaskan Native", 
      [Race_1]=6,"Native Hawaiian or Pacific Islander", 
      [Race_1]=7,"Multiracial", 
      [Race_1]=8,"Other", 
      [Race_1]=9,"Unknown" 
     ) AS Race 
FROM Demographics 
    INNER JOIN (
     [Status] 
     INNER JOIN 
      Research 
       ON [Status].Customer_ID = Research.Customer_ID 
     ) 
     ON (Demographics.ID = [Letter Status].Customer_ID) 
     AND (Demographics.ID = Research.Customer_ID) 
WHERE ((([Status].Count)=1)) 
GROUP BY [Status].Count, Demographics.Race_1 
ORDER BY Research.Store_site 
PIVOT Research.Store_site In (1,2,3,4,5,6,7,8,9,10); 

可能有人请使用上面的代码,告诉我在哪里放置左联接,以允许每个种族在表中显示行?另外,你能告诉我如何在这段代码中用0代替空值吗?我试图实施新西兰(),但没有成功。

请帮助。

回答

3

你FROM子句仔细看看。

FROM Demographics 
    INNER JOIN (
     [Status] 
     INNER JOIN 
      Research 
       ON [Status].Customer_ID = Research.Customer_ID 
     ) 
     ON (Demographics.ID = [Letter Status].Customer_ID) 
     AND (Demographics.ID = Research.Customer_ID) 

有内部条件是指[信状态],而[信状态]不包含源表中的....你确实有一个叫[状态]。

开始通过建立这些连接的查询设计器,让你知道你开始使用SQL哪个接入接受。

而直到你得到的加入整理简化了这件事情。摆脱开关,转换,PIVOT和GROUP BY,直到后你的JOIN工作。

+1

+1的QBE建议。 –