首页 > 解决方案 > 更新访问表列出了给定的两组之间的所有数字

问题描述

我有一个 Access 数据库,用户在其中输入两组数字,例如63120

>=63在另一个表中,我需要<=120列出所有数字。

我该怎么做?

标签: sqlms-access

解决方案


  • 创建一个名为Long Integer数据类型numbers的单个字段id的表:

    在此处输入图像描述

  • 使用整数09填充此表:

    在此处输入图像描述

  • 然后,您可以使用如下查询来实现交叉连接(也称为笛卡尔积)来产生数字 1-1000:

    select 100*n100.id+10*n10.id+n1.id+1 as n from numbers n1, numbers n10, numbers n100
    

    如果您的数量不太可能超过 100,则可能变为:

    select 10*n10.id+n1.id+1 as n from numbers n1, numbers n10
    

    如果您的数量可能超过 1000,则以下将产生 10000 条记录:

    select 1000*n1000.id+100*n100.id+10*n10.id+n1.id+1 as n 
    from numbers n1, numbers n10, numbers n100, numbers n1000
    

    (将模式扩展/收缩到适合您的数据的数量级)

  • 最后一步是应用适当的选择标准来选择所需的数字范围:

    select t.n from
    (select 100*n100.id+10*n10.id+n1.id+1 as n from numbers n1, numbers n10, numbers n100) t
    where t.n >= val([Enter lower bound]) and t.n <= val([Enter upper bound])
    

推荐阅读