我正在尝试(使用MS Access)按会计年度对某些数据进行分组,该会计年度可能与日历年度不同。
如果每个财政年度总是从给定月份的第一天开始,那么解决方案将很简单:只需使用如下if语句即可:
FY: IIf(Month([orderdate])<month([startFYofaCompany]);Year([orderdate])-1;Year([orderdate]))
在像这样的选择查询中
SELECT statement here AS FY, Sum(something) AS SumOfSth GROUP BY statement here;
但是,在我的情况下,困难在于给定公司的会计年度可以从给定月份的1号以外的日期开始。我正在寻找解决方案,但每个人都认为不是。
如果有人遇到同样的问题并可以分享解决方案,我将不胜感激。
编辑:没有模式重新。会计年度- 该数据库由多个公司组成,并且无论某个公司的FY是从第2月,第3日,第15日还是在给定月份的任何其他日期开始,该数据库都应该工作。开始日期存储在单独的字段中(在上面的伪代码中:startFYofaCompany)。
如果您要考虑月+日,那么显然您将需要在表(NOT NULL DEFAULT 1)中使用相应的2个字段。
NOT NULL DEFAULT 1
添加后,将计算以下年份: year(orderDate) - IIF(dateserial(year(orderDate), startFYofaCompany_month, startFYofaCompany_day) > orderDate, 1, 0)
year(orderDate) - IIF(dateserial(year(orderDate), startFYofaCompany_month, startFYofaCompany_day) > orderDate, 1, 0)
将此添加到您在查询中准备的2个位置。