对于这样的查询数据:
+-------+---------+
| Name | Details |
| JEFF | TEST1 |
| JEFF | TEST2 |
| JEFF | TEST3 |
| BOB | TEST1 |
| BOB | TEST2 |
+-------+---------+
如何查询以便可以添加数字序列(1,2,3 ...),每次名称更改时重置为1(即从JEFF到BOB)?
是否可以使用DCOUNT功能?
到目前为止我所做的是(它没有正确排序):
Number: (SELECT COUNT(*) FROM [dQuery]
WHERE [dQuery].[Name] = [dQuery].[Name]
AND [dQuery].[sequence] >= [dQuery].[sequence])
UPDATE1:
正确的查询是:
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];
答案 0 :(得分:1)
看看here。我认为作者已经解决了一些非常类似的问题。
答案 1 :(得分:1)
如果要在报表中动态添加序列号,请为特定表创建报表,然后在设计视图中打开报表。然后,在数据行的左侧添加一个文本框,并将“= 1”(带冒号)赋予其Control Source属性@“Data”选项卡。并将“运行总和”属性“数据”选项卡中的“否”更改为“过组”。在运行时,文本字段将按顺序显示数据,如每行中的1,2,3。
由于