bugfix> sql > 投稿

MSアクセスには2つのテーブルがあります。 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 件
  • 使用する相関する サブクエリ:

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

  • 私はこのようなことをします:

    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」という言葉を避けてください

あなたの答え