0

我有一个计算列“TimeAfterClass”,它使用 DateDiff 来计算从上课开始到审核日期之间的天数。这工作正常。许多结果对于“TimeAfterClass”具有相同的数字,并且也属于同一类别(例如“数学”或“英语”)...有人要求我修改 TimeAfterClass 结果以添加或减去 .01根据结果​​是在上半场还是下半场。例如,如果表数据是:

表格1

我需要前两个变为 30.98 和 30.99,第三个将保持 31,然后接下来的两个将是 31.01 和 31.02。这样我就可以将数据导入 Excel 并创建数据透视表,而无需对分数进行实际数学运算,因为它将由 TimeAfterClass 评估,然后条目将是唯一的。

我一直在尝试将其分解为几块进行处理……所以我认为我的第一步是创建一列序列,例如,新表如下所示:

表2

我试过这段代码:

SELECT Subject_TAC, Subject, Scores_TAC_ID, "Time_" & DCount("TimeAfterClass","Test","Subject_TAC=" & [Subject_TAC] & "And Scores_TAC_ID <=" & [Scores_TAC_ID]) AS Time_Num FROM Test;

我得到这个错误:

错误信息

由于这是一组波动的数据(每月更新一次),我需要动态计算。

我测序后的下一步是使用中位数,然后从前半部分逐步减去 0.01,然后在后半部分的结果中逐步添加 0.01。

但我什至无法通过我的第一步来获得序列。

我已经阅读了这个网站和其他网站上的很多帖子,但我无法破解这个坚果。

任何帮助或建议将不胜感激。

4

1 回答 1

2

似乎用于 DLookup 的变量是数字,如果不正确,则需要进行一些编辑...

SELECT Test.Subject_TAC, Test.Subject, Test.Scores_TAC_ID, 'Time_' & DCount("TimeAfterClass","Test","Subject_TAC=" & [Subject_TAC] & " And Scores_TAC_ID <=" & [Scores_TAC_ID] & "") AS Time_Num
FROM Test;

从您的主题是文本的响应中,如果它是文本,您必须在变量周围添加单引号:

SELECT Test.Subject_TAC, Test.Subject, Test.Scores_TAC_ID, 'Time_' & DCount("TimeAfterClass","Test","Subject_TAC='" & [Subject_TAC] & "' And Scores_TAC_ID <=" & [Scores_TAC_ID] & "") AS Time_Num
FROM Test;
于 2016-06-28T17:29:23.530 回答