首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于表中的另一列更新列- MS Access

基于表中的另一列更新列- MS Access
EN

Stack Overflow用户
提问于 2018-08-07 21:08:33
回答 1查看 217关注 0票数 0

我有一个标题为Game的表格,结构如下:

代码语言:javascript
复制
[Game_Name]      [Publisher]

表中的数据将如下所示:

代码语言:javascript
复制
[Game_Name]      [Publisher]
                     1
                     3
                     1
                     2
                     2
                     1
                     3

而Game_Name将为空。因此,我希望根据Publisher列的值更新Game_Name的值。

这是如何工作的:

如果Publisher列为1的每个实例(行)的Publisher =1 ->,则Game_Name将为GM-1,...GM-n。因此,在此示例中,有3个实例的Publisher为1。因此,值将为GM-1、GM-2、GM-3。

如果publisher = 2,与上面类似,则预期格式为1-1,...n-n。因此,由于我们有2个Publisher为2的实例,因此Game_Name的值将为GM-1-1、GM-2-2。

最后,如果Publisher = 3,则Game_Name的值为1-1-1,...n-n-n。这里有三个实例,因此Game_Name的值为GM-1-1-1、GM-2-2-2、GM-3-3-3。

这是我目前的方法

代码语言:javascript
复制
UPDATE Game
SET Game_Name = 
SWITCH (Publisher = 1, "GM-"&[1+1],
Publisher = 2, "GM-"&[1+1]&"-"&[1+1],
Publisher = 3, "GM-"&[1+1]&"-"&[1+1]&"-"&[1+1])

我在跟踪递增值和何时重置时遇到了问题。另外,这是否应该是一个宏。

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2018-08-08 03:35:37

考虑一下:

代码语言:javascript
复制
SELECT ID, Publisher, "GM-" & Choose([Publisher],[GrpSeq],[GrpSeq] & "-" & [GrpSeq],[GrpSeq] & "-" & [GrpSeq] & "-" & [GrpSeq]) AS Game_Name
FROM (SELECT ID, Publisher, DCount("*","Game","Publisher = " & [Publisher] & " AND ID <" & [ID])+1 AS GrpSeq FROM Game) AS Q1;

请注意,对于非常大的数据集,这可能会执行得很慢。在这种情况下,VBA方法可能更可取。如果有明显多于3个发布者值,则VBA方法可能是唯一选择。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51727609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档