【问题标题】:Access number identical fields with decimal number访问数字与十进制数字相同的字段
【发布时间】:2022-01-06 10:16:09
【问题描述】:

我在 Access 中有一个表,并且某些字段值是相同的。如果字段值相同,我想让它们用十进制数字编号。有没有办法用 SQL 做到这一点?

以下是我的表格示例以及我想要做什么。

   Nr        Model     ID
411412315   Stalas     1
411412315   Stalas     2
411412315   Stalas     3
411412315   Stalas     4
411412316   Stalas     5
411412399   Stalas     6
411412311   Stalas     7
411412324   Stalas     8
411412324   Stalas     9

    Nr       Model     ID
411412315.1 Stalas     1
411412315.2 Stalas     2
411412315.3 Stalas     3
411412315.4 Stalas     4
411412316   Stalas     5
411412399   Stalas     6
411412311   Stalas     7
411412324.1 Stalas     8
411412324.2 Stalas     9


    

【问题讨论】:

  • 您的问题下方的“oracle”标签在做什么?请注意您帖子底部的标签 - 该网站会自动添加一些标签,而且它们通常是错误的。根据需要进行编辑,最好在发布问题之前进行编辑。
  • 所以字段Nr 是十进制数据类型?或者你是怎么想象的?
  • 您要计算每个组的行序号。对于 SQL 解决方案,需要一个唯一的记录标识符 - 自动编号应该服务于 stackoverflow.com/questions/70052620/…。但是,构造查询以忽略 1 组可能不可行。否则,使用 VBA 过程。
  • 字段 Nr 是短文本类型,如果需要,我可以将其更改为数字。我有主编号,但仍然不知道如果上面的字段具有相同的值,我该如何开始编号
  • 如前所述,需要一个唯一的记录标识符字段。您是否查看了引用的链接?

标签: sql vba ms-access ms-access-2007


【解决方案1】:

您可以使用具有两个子查询的查询:

SELECT 
    [Nr] & IIf(
        (Select Count(*) From ModelNr As T Where T.Nr = ModelNr.Nr) > 1,
        "." & (Select Count(*) From ModelNr As T Where T.Nr = ModelNr.Nr And T.Id <= ModelNr.Id)) AS FullNr, 
    ModelNr.Id
FROM 
    ModelNr
ORDER BY 
    ModelNr.Id;

输出:

【讨论】:

  • 非常感谢!它按预期工作,很高兴有像你这样乐于助人的人!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-30
  • 2015-10-04
相关资源
最近更新 更多