ms access中的多次查询数据

Multiple query data in ms access

我在 accdb 中有一个 table,它由几列组成。它们包括一个社会安全号码、几个日期和货币价值。我正在尝试查询这里的数据(accdb 中有超过 600000 个结果)。

社会保险号可以在数据库中出现一次或多次。同一行(不同列)上的日期和货币值可以不同,也可以不同。

所以假设我的 table 看起来像这样:

Ssn      Date1         Date2       moneyvalue   PostDate
123455  12-01-20      03-04-20     5.21        (A datettime value )     

我正在尝试做几件事:

首先我只想 select 在数据库中至少出现两次(或更多)的 ssn。

从这些结果中我只想得到 date1 等于 date2 的结果。

从这些结果中,我想得到每个 ssn 的货币价值不同的结果。 我想比较来自 ssn 的货币价值和这个 ssn 第一次出现在数据库中的货币价值(因此 postDate 中日期时间最旧的那个)和 post 这个 ssn 如果他们货币价值不一样。

这可能吗?我将如何继续呢?我必须从 ms access sql window 中执行此操作,我无法将数据库导出到 mssql,因为它受保护。

总结一下:

我想检索在数据库中出现两次或更多次的所有 ssn,其中 date1 等于 date2,并且记录 x 中的货币值与最旧的 ssn 中的货币值不匹配 post日期。

您的问题建议聚合和多个 having 子句:

select ssn
from mytable
group by ssn
having 
    count(*) > 1
    and sum(iif(date1 = date2, 1, 0)) > 1
    and count(distinct moneyvalue) > 1

另一种解释是条件 date1 = date2:

where 子句
select ssn
from mytable
where date1 = date2
group by ssn
having 
    count(*) > 1
    and count(distinct moneyvalue) > 1

但是这两个查询并不等同,我的理解是第一个就是你要的。