繁体   English   中英

ms access中的多个查询数据

[英]Multiple query data in ms access

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

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

因此,假设我的表如下所示:

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

我正在尝试做几件事:

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

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

从这些结果中,我想得到每个 ssn 的货币价值有不同值的结果。 我想将 ssn 中的货币价值与此 ssn 首次出现在数据库中时的货币价值进行比较(因此是 postDate 中日期时间最早的那个),如果它们的货币价值不同,则发布此 ssn。

这可能吗? 我该怎么做呢? 我必须在 ms access sql 窗口中执行此操作,我无法将数据库导出到 mssql,因为它受到保护。

所以总结一下:

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

您的问题建议聚合和多个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

然而,这两个查询并不等效,我的理解是第一个是您所要求的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM