【问题标题】:subquery - IIF() 4 INNER JOIN子查询 - IIF() 4 INNER JOIN
【发布时间】:2013-11-27 15:37:10
【问题描述】:

我在 MS ACCESS 中有以下语句,它检索 0 个数据并且应该检索 1 个值,因为 qselSumPastDivs_vd 检索到 1 个值:

SELECT tblTrades.Tick, 
   IIf([tblTrades].[vd_off]>Now(), [qselSumPastDivs_vd].[SumOfBBG_Div_Forecast],
                                   [qselSumOfPastDivs].[SumOfBBG_Div_Forecast]) AS Expr1
FROM ((tblBbgDivData INNER JOIN 
      tblTrades ON tblBbgDivData.Tick = tblTrades.Tick) INNER JOIN 
      qselSumOfPastDivs ON tblTrades.Tick = qselSumOfPastDivs.Tick) INNER JOIN 
      qselSumPastDivs_vd ON tblTrades.Tick = qselSumPastDivs_vd.Tick
GROUP BY tblTrades.Tick, 
         IIf([tblTrades].[vd_off]>Now(), [qselSumPastDivs_vd].[SumOfBBG_Div_Forecast],
                                         [qselSumOfPastDivs].[SumOfBBG_Div_Forecast]);

是关节产生了问题吗?

我已删除 IIF 语句中的 [],但显然,MS ACCESS 需要 () 用于多个 INNER JOIN。还是没有数据……

SELECT tblTrades.Tick, IIf(tblTrades.vd_off>Now(),qselSumPastDivs_vd.SumOfBBG_Div_Forecast,qselSumOfPastDivs.SumOfBBG_Div_Forecast) AS Expr1
FROM ((tblBbgDivData INNER JOIN tblTrades ON tblBbgDivData.Tick = tblTrades.Tick) INNER JOIN qselSumOfPastDivs ON tblTrades.Tick = qselSumOfPastDivs.Tick) INNER JOIN qselSumPastDivs_vd ON tblTrades.Tick = qselSumPastDivs_vd.Tick
GROUP BY tblTrades.Tick, IIf(tblTrades.vd_off>Now(),qselSumPastDivs_vd.SumOfBBG_Div_Forecast,qselSumOfPastDivs.SumOfBBG_Div_Forecast);

【问题讨论】:

  • 不完全符合主题,但您可以按 SELECT 中的所有字段进行 GROUP。考虑改用 DISTINCT,省去冗长的 GROUP BY 子句:)

标签: sql ms-access subquery inner-join iif


【解决方案1】:

将 JOIN 从 INNER JOIN 更改为 LEFT JOIN 完成了这项工作:

SELECT tblTrades.Tick, IIf([tblTrades].[vd_off]>Now(),[qselSumPastDivs_vd].[SumOfBBG_Div_Forecast],[qselSumOfPastDivs].[SumOfBBG_Div_Forecast]) AS DivLevel2
FROM ((tblTrades INNER JOIN tblBbgDivData ON tblTrades.Tick = tblBbgDivData.Tick) LEFT JOIN qselSumOfPastDivs ON tblTrades.Tick = qselSumOfPastDivs.Tick) LEFT JOIN qselSumPastDivs_vd ON tblTrades.Tick = qselSumPastDivs_vd.Tick
GROUP BY tblTrades.Tick, IIf([tblTrades].[vd_off]>Now(),[qselSumPastDivs_vd].[SumOfBBG_Div_Forecast],[qselSumOfPastDivs].[SumOfBBG_Div_Forecast]);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-19
    • 2014-02-24
    • 1970-01-01
    • 2013-12-22
    • 1970-01-01
    • 2020-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多