我正在构建一个需要计算每晚季节性成本(基于酒店ID)的Access数据库,并在查询中填充日期范围的整个成本。目前,所有必须分段计算和/或手动输入。
我已经尝试了各种表格和查询,但它们都留下很多东西要手工输入。我想看看是否有办法完全自动化这个计算,真的很感激任何帮助。
下表显示的日期范围为一晚需要118美元,另一晚为159美元,总计277美元。我希望能够运行一个自动查询来填充总成本,并删除除了签入和签出日期之外的所有内容(请原谅差距,仍然可以在这里找出帖子的格式。)
ID | Hotel | CheckIn | CheckOut | NumPeak | PeakCost | NumNonPeak | NonPeakCost | TotalCost 1 | CILBV | 04/06/12 | 04/08/12 | 0000001 | $118.00 | 0000001 | $159.00 | $277.00
答案 0 :(得分:0)
您绝对应该能够构建一个接受签入和签出日期的查询,并返回总费用。关键信息是酒店对各个日期的收费标准。
假设表中有这样的列(如果它分散在多个表中,那么你将不得不用适当的内连接构建一个查询。)
hotel_id peak_start_date peak_end_date peak_price non_peak_price
棘手的部分是有很多可能的情况:
这就是开始和结束日期在同一年的情况;结帐时间是下一年还有六种情况。
所以问题是如何最好地进行计算,高峰日数和非高峰日数#。你可以:
IIF
语句我可能会去#3,构建一些简单的帮助器查询,但将实际的逻辑放入VBA方法。
如果你尝试并陷入困境,你可以随时提出另一个问题(更具体的问题往往会得到更好的答案)。