我有一个标题为Game的表格,结构如下:
[Game_Name] [Publisher]表中的数据将如下所示:
[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。
这是我目前的方法
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])我在跟踪递增值和何时重置时遇到了问题。另外,这是否应该是一个宏。
任何帮助都是非常感谢的。
发布于 2018-08-08 03:35:37
考虑一下:
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方法可能是唯一选择。
https://stackoverflow.com/questions/51727609
复制相似问题