【问题标题】:How can I return the last date by the last 12 months (SQL Access)如何返回过去 12 个月的最后日期(SQL 访问)
【发布时间】:2017-02-01 23:35:16
【问题描述】:

我不知道如何返回该月的最后一个日期。目前我只有这个返回过去 12 个月的 SQL 语句:

SELECT *
FROM KENNZAHL
WHERE ID=325 And Datum>=DateAdd("m",-12,Date())
ORDER BY Datum DESC;

很好,但我只需要这 12 个月的最后一个日期。有人有想法吗?

ps:我使用的是 ms access 2010。

例如:

结果:

ID  | Datum
325 | 2017-01-31
325 | 2016-12-31
325 | 2016-11-30
325 | 2016-10-31
325 | 2016-09-31
.....

【问题讨论】:

  • 你只想要日期?那将是MAX(Datum)。还是您想要MAX(Datum) 的完整记录?还是每月MAX(Datum)?还是别的什么?
  • @ThorstenKettner 我编辑了我的帖子
  • 没有2016-09-31。

标签: sql ms-access


【解决方案1】:

每月最大日期:

SELECT MAX(Datum)
FROM KENNZAHL
WHERE ID=325 And Datum>=DateAdd("m",-12,Date())
GROUP BY YEAR(Datum), MONTH(Datum)
ORDER BY YEAR(Datum) DESC, MONTH(Datum) DESC;

【讨论】:

  • 感谢您的回答。现在的问题是结果排序不正确。它以 2016-12-30 开始,以 2017-01-31 结束...正确的方法是 2017-01-31、2016-12-30、2016-11-30 等等。
  • 好的,然后也按年份分组和订购。我已经相应地更新了我的答案。
【解决方案2】:

如果只有最后一个日期的条目,您可以使用

SELECT TOP 1 *
FROM KENNZAHL
WHERE ID=325
ORDER BY Datum DESC;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-09
    • 1970-01-01
    • 2015-08-26
    • 2019-07-10
    • 2022-11-08
    • 2015-08-27
    • 1970-01-01
    相关资源
    最近更新 更多