代码之家  ›  专栏  ›  技术社区  ›  John M

Microsoft Access-根据字段值更改创建数字序列?

  •  0
  • John M  · 技术社区  · 14 年前

    对于这样的查询数据:

       +-------+---------+ 
       | Name  | Details | 
       | JEFF  |  TEST1  |
       | JEFF  |  TEST2  |
       | JEFF  |  TEST3  |
       | BOB   |  TEST1  |
       | BOB   |  TEST2  |
       +-------+---------+
    

    如何查询,以便添加一个数字序列(1、2、3…)以便每次名称更改(即从Jeff更改为Bob)时重置回1?

    是否可以使用dcount函数?

    到目前为止我所拥有的是(它的顺序不正确):

    Number: (SELECT COUNT(*) FROM  [dQuery] 
    WHERE  [dQuery].[Name] =  [dQuery].[Name] 
    AND  [dQuery].[sequence] >=  [dQuery].[sequence])
    

    更新1:

    正确的查询是:

    SELECT [dQuery].Name, [dQuery].[sequence], (select count([dQuery].Name) + 1 
    from [dQuery] as dupe where 
    dupe.[sequence]< [dQuery].[sequence] and dupe.name  = [dQuery].name
    ) AS [Corrected Sequence]
    FROM [dQuery]
    WHERE ((([dQuery].Name)="jeff"))
    ORDER BY [dQuery].Name, [dQuery].[sequence];
    
    2 回复  |  直到 9 年前
        1
  •  1
  •   Grembo    14 年前

    看一看 here . 我认为作者已经解决了一些非常相似的问题。

        2
  •  1
  •   Ariful Alam Tuhin    12 年前

    如果要在报表中动态添加序列号,请为特定表创建一个报表,然后在设计视图中打开该报表。然后,在数据行的左侧添加一个文本框,并为其控件源属性@“Data”选项卡提供“=1”(带冒号)。并将其“running sum”属性@“data”选项卡的“no”更改为“over group”。在运行时,文本字段将按每行1、2、3这样的顺序显示数据。

    谢谢