MS Access:当两个标准相遇时计算差异

时间:2018-04-18 19:44:18

标签: ms-access criteria

我有一个与MS Access相关的问题。我有一张看起来像这样的表:

Table1

我需要做的是:
1.查找截止日期2017年1月29日(一年中的第一个月),
2.查看相应的AccountNumber和SubAccountNumber,
3.找到与上个月的AccountNumber和SubAccountNumber匹配的截止日期28.02.2017(所以下个月),
4.减去金额,
5.并显示结果。

在此示例中(表1):2017年1月29日的第一个截止日期为AccountNumber 1和SubAccountNumber 23以及金额400€。寻找匹配AccountNumber和SubAccountNumber的下个月,我们发现价值300€。我现在必须从400欧元减去300欧元,并把它放在我添加的字段中(另见表2)。

到目前为止我所做的是连接两个属性AccountNumber和SubAccountNumber,所以我的表现在看起来像这样:

Table2

我认为这样会更容易,因为现在我可以查找第一个月/截止日期(29.01.2017),获取相应的CONCAT,查找具有相同CONCAT的下个月/截止日期,并减去量。

虽然我不熟悉Access,但我对如何解决这个问题毫无头绪。任何暗示都将非常感激。如果您认为我使用串联的方法不是针对目标的,或者如果我没有将问题弄清楚,请告诉我。

PS我在网上看到Access提供if-else语句 - 这会是个主意吗?

1 个答案:

答案 0 :(得分:0)

那应该让你在那里或非常接近:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Storyboard (<UIStoryboard: 0x1c447f4c0>) doesn't contain a view controller with identifier 'NewsListController'' 
*** First throw call stack:
(0x181b82d8c 0x180d3c5ec 0x18c0d1ea8 0x1004da07c 0x101561dfc 
0x1015626fc 0x101562a48 0x101552064 0x101553238 0x1004d9b40 0x1004d9e6c 
0x18b75eee0 0x18b75eacc 0x18ba9c3b4 0x18b80bac8 0x18b80b720 0x18b7ff424 
0x18b757770 0x185cf925c 0x185cfd3ec 0x185c69aa0 0x185c915d0 0x18bb3054c 
0x18c10d4c0 0x18c106258 0x181b2b404 0x181b2ac2c 0x181b2879c 0x181a48da8 
0x183a2b020 0x18ba2978c 0x10044ce64 0x1814d9fc0)

确保您使用SELECT T1.ACCOUNTNUMBER, T1.SUBACCOUNTNUMBER, T1.AMOUNT-T2.AMOUNT AS AMOUNTDIFF FROM Table1 T1 INNER JOIN Table1 T2 ON T1.ACCOUNTNUMBER=T2.ACCOUNTNUMBER AND T1.SUBACCOUNTNUMBER=T2.SUBACCOUNTNUMBER AND DateDiff('m',DateAdd('d',1,T1.DEADLINE), DateAdd('d',1,T2.DEADLINE))=1 WHERE T1.DEADLINE=#29.01.2017# 的日期格式是您的语言区域的有效日期格式。显然用您的表的实际名称替换WHERE

我没有一种简单的测试方法,因此可能存在拼写错误。