我有以下查询,其中周是日期字段,市场和团队是文本字符串。
SELECT t1.Week, t1.Market, t1.Team, Sum(t1.Audits) AS CFS_Audits, Sum(t1.Incorrect) AS CFS_Incorrect
FROM t1
GROUP BY t1.Week, t1.Market, t1.Team;
我的目标是有一个使用DSUM
的附加字段来计算在给定周内发生的所有审核。因此,该字段应具有比CFS_Audits更低的粒度,CFS_Audits在周 - 市场 - 团队级别进行细分
我尝试了以下代码X: DSUM("Audits", "t1", "[Week]="&[Week])
,该代码在我发现的最近问题here中提出,但结果字段始终为NULL
。我怀疑这可能是因为在给定的示例中,字段存储为数字而不是日期。或许我完全采取了错误的做法。
在线教程也没有帮助,因为在所有情况下我都发现它们提供了带有硬编码标准的DSUM
标准参数的示例,而在这里我需要逐行评估。
谢谢
答案 0 :(得分:1)
Access SQL中的日期非常难以使用
最简单的方法是避免任何类型转换,就是使用子查询而不是域聚合。
SELECT t.Week, t.Market, t.Team, Sum(t.Audits) AS CFS_Audits, Sum(t.Incorrect) AS CFS_Incorrect, (SELECT Sum(s.Audits) FROM t1 s WHERE s.Week = t.Week) As X
FROM t1 t
GROUP BY t.Week, t.Market, t.Team;
或者,您可以在DSUM
中使用日期,但它应该被#
octothorpes包围,格式为YYYY-MM-DD或MM / DD / YYYY:
SELECT t.Week, t.Market, t.Team, Sum(t.Audits) AS CFS_Audits, Sum(t.Incorrect) AS CFS_Incorrect, DSUM("Audits", "t1", "[Week]=" & Format([Week], "\#yyyy-mm-dd\#") As X
FROM t1 t
GROUP BY t.Week, t.Market, t.Team;