【问题标题】:MS Access subquery from identical table来自同一表的 MS Access 子查询
【发布时间】:2021-02-03 07:46:41
【问题描述】:

我目前正在开发一个用于收集客户反馈的访问数据库。

我有一张表,其结构和数据如下:

我想显示以下结果:

确实,我想要的是一个 MS 访问请求,它针对我表中的每个日期值显示与“date_import”列(结果的第二列)上的相同日期匹配的记录数量以及在“date_answered”列(结果的第 3 列)中与此条件匹配的记录。

我不知道该怎么做,因为所有子查询都应该相互了解。

有没有人遇到过这个问题并且可以帮助我?

提前致谢,

附: : 我使用的是 2016 版的 MS Access,但我很确定我正在尝试做的事情在以前版本的 Access 中也可以实现,这是我添加的几个标签。

【问题讨论】:

    标签: sql ms-access ms-access-2016


    【解决方案1】:

    嗯。 . .我认为这会奏效:

    select dte, sum(is_contact), sum(is_answer)
    from (select date_import as dte, 1 as is_contact, 0 as is_answer
          from t
          union all
          select date_answers, 0 as is_contact, 1 as is_answer
          from t
         ) t
    group by dte;
    

    并非所有版本的 MS Access 都允许在 FROM 子句中使用 union all。如果这是一个问题,您可以创建一个视图,然后从该视图中进行选择。

    【讨论】:

    • 哇哦!这似乎很有魅力!你刚刚用这么几行就解决了几个小时的大脑过热问题。非常感谢人!好吧,就我而言,我还必须对我的访问数据库再做一次修改:我的日期与时间一起存储(21/10/2020 12:00:00 - 法语格式),我每天会收到几行,具体取决于每个日期值的实际时间。我所做的很简单:我只是添加了两列并使用以下 SQL 填充它们: UPDATE [Table] SET [New date column] = CDate(Format([date time column], "dd/mm/yyyy")) WHERE [日期时间列] IS NOT NULL;
    猜你喜欢
    • 2013-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多