【问题标题】:Compering number to a current month in MS Access在 MS Access 中将数字与当前月份比较
【发布时间】:2023-03-05 18:43:01
【问题描述】:

我有一个如下所示的数据表:

Id Month Number
e1 9 2
e2 10 3
e3 10 1
e4 9 3

月份列是一个整数。我想获得 10 月和 9 月的数字总和,但是通过使用对当前月份和上个月的引用,就好像数据会及时改变一样。

我试过使用 MONTH(DATE()):

SELECT Sum(dt.Number)
FROM dt
WHERE dt.Month = MONTH(DATE()); 

还有

WHERE CInt(dt.Month) = CInt(MONTH(DATE()));

但它不起作用(这不是错误,它只是不返回任何东西)。 我会很感激任何想法。

【问题讨论】:

    标签: sql ms-access


    【解决方案1】:

    试试这个:

    SELECT Sum(dt.Number) AS SumOfNumber
    FROM dt
    HAVING (((dt.Month)=Month(Date())));
    

    【讨论】:

    • 它不会像我的代码一样返回任何内容。
    【解决方案2】:

    您可以使用In当月或上月:

    Select 
        Sum([Number]) As Total
    From 
        dt
    Where 
        dt.Month In (Month(Date(), (Month(Date()) + 12 - 2) Mod 12 + 1);
    

    【讨论】:

    • 它不起作用。我有一个错误。我认为问题出在 Month(Date()) 的数据类型上,但是当 CInt 不起作用时,我不知道如何将其更改为 Integer。
    • 什么错误? Month(Date()) 确实返回一个整数,它在这里工作。
    • @Aleksandra 不起作用 不是有效的错误描述。请使用具体的错误详细信息更新您的帖子。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-02
    • 2017-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多