【发布时间】:2017-12-25 13:11:17
【问题描述】:
我有这个数据:
*周、年、数值为数字格式
我正在尝试获取过去 5 周的平均值:5,000(即 25,000/5)
到目前为止我有这个查询
x=用户输入/获取当年上周(当前周) y= 当前日期,年份
INSERT INTO RR5 ([ID],[RR5])
SELECT ID, ROUND((SUM(AMOUNT)/5),4) AS RR5
FROM resultTable
WHERE Years =" & y - 1 & " and Week > " & 52 - (x - 5) & " Group BY ID"
但是,我只能得到第 51 周和第 52 周。我需要添加附加条件来告诉编译器我需要周 > 2016 年 50 年和周
Years = " & y & " and Weeknum < " & x
获得第 1 周第 2 周和第 3 周。
我认为我不能将这两个条件放在同一个“位置”中。我该如何解决?
解决方案:
INSERT INTO RR5 ([ID],[RR5]) SELECT ID, ROUND((SUM(AMOUNT)/5),4) AS RR5 FROM resultTable WHERE (Years = " & Y - 1 & " and WeekNum > 52 - (5-" & x & ")) OR ( Years = " & Y & " and Weeknum <= " & x & " ) Group BY ID
只需在每个条件上添加括号,然后用 OR 连接另一个条件。
感谢您的支持,希望对遇到同样问题的人有所帮助。
【问题讨论】:
-
请提供完整的代码,包括任何VBA,并包括字段类型。
-
点作为数据还是只是一个奇特的帖子?正如其他人所说,提供更多详细信息以提供更好的帮助。
-
抱歉,点表示1-52的连续数据。