如何在 Access 查询中显示没有键的记录

How to have records without keys show up in Access query

根据评论更新...

第一只股票 (ISIN) 是主要股票,第二只股票是我们衡量业绩的基准 (MNEMONIC)。只要基准存在,我的查询就可以工作并且 returns 结果。但是,当不存在基准时(即因为尚未确定),查询 returns 根本没有结果。我怎样才能让它在任何情况下显示主要股票(总是存在)的结果?

这是我现在的 SQL:

PARAMETERS strISIN Text ( 255 );
SELECT 
    tblFUNDS.ISIN, tblFunds_TS_Data.Date, tblFunds_TS_Data.Price, tblBM_Data.MNEMONIC, 
    tblBM_TS_Data.Date, tblBM_TS_Data.Price, RiskFreeReturn.F6 AS RiskFreeReturn_USD, 
    tblFUNDS.Fund_Selection
FROM 
    ((((tblFUNDS LEFT OUTER JOIN tblFunds_Data ON tblFUNDS.ISIN = tblFunds_Data.ISIN) 
        LEFT OUTER JOIN tblFunds_TS_Data ON tblFunds_Data.ISIN = tblFunds_TS_Data.ISIN) 
        LEFT OUTER JOIN tblBM_Data ON tblFUNDS.DS_Benchmark_Symbol = tblBM_Data.MNEMONIC) 
        LEFT OUTER JOIN tblBM_TS_Data ON tblBM_Data.MNEMONIC = tblBM_TS_Data.MNEMONIC) 
        LEFT OUTER JOIN RiskFreeReturn ON tblFunds_TS_Data.Date = RiskFreeReturn.F1
WHERE 
    (((tblFUNDS.ISIN)=[strISIN]) 
    AND ((tblFunds_TS_Data.Date)=[tblBM_TS_Data].[Date] 
        And (tblFunds_TS_Data.Date)>=#12/28/2013#) 
    AND ((tblFUNDS.Fund_Selection)=0))
ORDER BY tblFunds_TS_Data.Date;

问题出在 LEFT JOIN 外侧 table 上的 WHERE 条件:

And tblFunds_TS_Data.Date >= #12/28/2013#

要对此 table 进行过滤,您需要添加 OR ... IS NULL,因此查询仍然可以包含 OUTER 端为空的记录:

And (tblFunds_TS_Data.Date >= #12/28/2013# OR tblFunds_TS_Data.Date IS NULL)