需要在MS Access(2010)中创建一个SQL语句来计算一个范围内的多个记录

时间:2018-06-27 14:23:20

标签: sql vba ms-access-2010

我在MS访问中有两个表。需要创建一个表来查找table1中的范围并计算该范围内table2中的记录。

表1

FROM        TO
00100000    00799999
00800000    00899999
00900000    01599999
01600000    01899999

表2

Acct
00103614
00103615
00103624
00103626
00104001
00104002
00104003
00104004
00104302
00104400
00104401
00104404
00104406
00104407
01622345
01622347
01622353
01622357
01622359
01622362
01622365
01622366
01622368

所需的输出:

FROM        TO          Count
00100000    00799999    50
00800000    00899999    10
00900000    01599999     0
01600000    01899999    42

谢谢 弗兰克

2 个答案:

答案 0 :(得分:0)

我会做这样的事情:

select count(*) as count, table1.tfrom, table1.to
from table2, table1
where table2.acct between table1.tfrom and table1.to
group by table1.tfrom, table1.to;

请避免在表/列名称中使用诸如from和to之类的“ SQL”字样

答案 1 :(得分:0)

使用 correlated 子查询:

select *, (select count(*) 
           from table2 t2 
           where t2.acct >= t1.from and 
                 t2.acct <= t1.to
          ) as Count
from table1 t1;