【问题标题】:MS Access SQL -> Count records in Table 1, Perform If condition in Table 2, but show all recordsMS Access SQL -> 统计表1中的记录,执行表2中的If条件,但显示所有记录
【发布时间】:2012-06-18 18:53:00
【问题描述】:

我目前有一个生成 3 列的 SQL 语句:

    [Review Date] [Total Reviews] [Reviewed By]  

     10/24/2001         16            Jane
     10/24/2001         1             Bob
     10/24/2001         2             Chloe
     09/20/2001         17            Jane
     09/20/2001         34            Bob
     09/20/2001         86            Chloe
     02/04/2001         14            Jane
     02/04/2001         3             Bob
     02/04/2001         41            Chloe

SQL 看起来像这样(得到上面的输出):

SELECT 

[Review Results].[Review Date], 
count([Review Results].[Reviewed By]) as [Total Reviews], 
[Review Results].[Reviewed By]

FROM 
[Review Results]

GROUP BY  [Review Results].[Review Date], [Review Results].[Reviewed By]


ORDER BY [Review Results].[Review Date]  

我想做的是加入另一个名为 [Home_Days_table] 的表。表格如下所示:

[Reviewed By]     [WFH Date]

   Jane           10/12/2011
   Jane           07/11/2010
   Bob            04/09/2002
   Jane           01/01/2007

我正在寻找上述查询以填充 [Home_Days_Table] 中的 [WFH 日期] 字段,用于在 [Results Review].[Review Date] 和 [Results Review] 之间匹配的每条记录。[审核人] 与 [Home_Days_Table]。[审核人] 和 [Home_Days_Table]。[WFH 日期]。我想显示上面原始 SQL 中的所有记录,并附加一个满足此条件的列。

有人可以帮忙吗?

除了上述之外,我希望按照给定的方式执行查询,但要添加另一个日期字段。我使用的查询是:

SELECT 
   [Review Results].[Review Date], 
   count([Review Results].[Reviewed By]) as [Total Reviews], 
   [Review Results].[Reviewed By], 
   [Home_Days_table].[WFH Date]

FROM [Review Results]
LEFT JOIN [Home_Days_table]
ON  [Review Results].[Reviewed By]=[Home_Days_table].[Reviewed By] 
AND [Review Results].[Review Date]=[Home_Days_table].[WFH Date]

GROUP BY  
   [Review Results].[Review Date], 
   [Review Results].[Reviewed By],
   [Home_Days_table].[WFH Date]


ORDER BY [Review Results].[Review Date]   

上面的查询回答了原始问题,但我想在 [WFH 日期] 顶部添加另一列,称为 [Summer Days]。这个想法与原始问题相同,但我正在寻找查询来填充 [Home_Days_Table] 中的 [WFH Date] 字段和 [Home_Days_Table] 中的 [Summer Days] 字段,用于匹配的每条记录在 [结果审核].[审核日期] 和 [结果审核].[审核人] 与 [Home_Days_Table].[审核人] 和 [Home_Days_Table].[WFH 日期] 和 [结果审核].[审核日期] & [Results Review].[Reviewed By] with the [Home_Days_Table].[Reviewed By] & [Home_Days_Table].[Summer Days]。

有人可以帮忙吗?

【问题讨论】:

    标签: sql ms-access join


    【解决方案1】:

    类似..?

    SELECT 
       [Review Results].[Review Date], 
       count([Review Results].[Reviewed By]) as [Total Reviews], 
       [Review Results].[Reviewed By], 
       [Home_Days_table].[WFH Date]
    
    FROM [Review Results]
    LEFT JOIN [Home_Days_table]
    ON  [Review Results].[Reviewed By]=[Home_Days_table].[Reviewed By} 
    AND [Review Results].[Review Date]=[Home_Days_table].[WFH Date]
    
    GROUP BY  
       [Review Results].[Review Date], 
       [Review Results].[Reviewed By],
       [Home_Days_table].[WFH Date]
    
    
    ORDER BY [Review Results].[Review Date]  
    

    【讨论】:

    • 如问题中所述,我对这个查询有另一个转折,你知道这是否可能吗?
    • 您的意思是您只想加入 [Review Results].[Review Date] 到 [Home_Days_table].[Summer Days] 以及其他联接,还是 SummerDays 来自子查询?
    • 我不确定您所说的常见问题解答评论是什么意思。但是,是的,我希望加入 [Review Results].[Review Date] 到 [Home_Days_table].[Summer Days] 以及其他加入
    • 在这种情况下,只需输入另一个 AND。 <...> AND [Review Results].[Review Date]=[Home_Days_table].[Summer Days]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多