是否可以计算Access中每个日历周的总成本?

时间:2015-07-15 14:24:03

标签: ms-access ms-access-2007

我根据Access 2007学生模板为假日俱乐部设置了出席表格。经过一些修改后,我的工作方式正是如此。

客户要求的东西包括记下每天孩子的费用。这很容易做到,但我也想知道是否可以在Access中自动计算每个日历周的总成本?

因此,例如,或许另一个表使用学生详细信息,但只显示总费用 - 从每周的星期一开始记录导航?但是我该怎么做呢?

2 个答案:

答案 0 :(得分:1)

如果您想要每位学生每周费用,可以在DatePart()查询中使用GROUP BY

SELECT
    y.Student,
    Year(y.[Attendance Date]) AS year_number,
    DatePart('ww', y.[Attendance Date], 2) AS week_number,
    Sum(y.Cost) AS SumOfCost
FROM YourTable AS y
GROUP BY
    y.Student,
    Year(y.[Attendance Date]) AS year_number,
    DatePart('ww', y.[Attendance Date], 2) AS week_number
ORDER BY 1, 2, 3;

第三个DatePart()参数是 firstdayofweek ,2是VBA常量 vbMonday 的值。但是你不能在查询中使用常量名称,所以这就是我提供常量值的原因。

注意DatePart()支持可选的第4个参数 firstweekofyear 。如果根据我的建议编号的周数不能令人满意,请查看是否可以使用 firstweekofyear 来根据自己的喜好调整编号。如果仍然没有按照您的意愿对周数进行编号 - 也许您的组织使用自定义周数策略---您可能需要创建一个参考表来存储每个出勤日期的周数

答案 1 :(得分:0)

我在SQL中尝试这样的事情。

Select [Student], [AttendanceDate], [Cost]
From [ModifiedStudentsTable]
WHERE Year([AttendanceDate])* 53+DatePart("ww", [AttendanceDate]) = Year(Date())* 53+DatePart("ww", Date()) - [VariableEnteredInYourForm]
;

[VariableEnteredInYourForm]是一个值

1 = last week
2 = the week before that.