【问题标题】:MS-Access: Select start date and date for each fiscal monthMS-Access:选择每个会计月的开始日期和日期
【发布时间】:2017-06-23 15:38:59
【问题描述】:

这里是 SQL 新手。所以我有一张桌子,上面写着

start_date  |  end_date   |   fiscal_month  | fiscal_year
------------| ------------|-----------------|-------------
1/1/2017    |  1/1/2017   |        1        |   2017
1/2/2017    |  1/8/2017   |        1        |   2017
1/9/2017    |  1/15/2017  |        1        |   2017
1/16/2017   |  1/22/2017  |        1        |   2017
1/23/2017   |  1/29/2017  |        1        |   2017
1/30/2017   |  2/5/2017   |        2        |   2017
2/6/2017    |  2/12/2017  |        2        |   2017
2/13/2017   |  2/19/2017  |        2        |   2017
2/20/2017   |  2/26/2017  |        2        |   2017
2/27/2017   |  3/5/2017   |        3        |   2017

...2017 年以此类推

我只想提取每个 财政 月的开始和结束日期

我正在尝试编写一个将输出的查询

start_date  |  end_date   
------------| ---------   
1/1/2017    |  1/29/2017  
1/30/2017   |  2/26/2017  
2/27/2017   |  3/26/2017

...等这一年。

我可以很容易地分别获取每个月的开始和结束日期

SELECT First(start_date), Last(end_date)
FROM fiscal_calendar
WHERE year=2017 AND fiscal_month=1

但我不知道如何在一个查询中获取所有月份。我确信这对于 SQL 资深人士来说是一个简单的解决方案,但我正在绞尽脑汁。据我了解,MS Access 在他们的 SQL 语言中并没有真正的循环,对吧?

【问题讨论】:

    标签: sql ms-access


    【解决方案1】:

    你应该使用最小值和最大值

      SELECT min(start_date), max(end_date)
      FROM fiscal_calendar
      WHERE year=2017 AND fiscal_month=1
    

    所有月份

      SELECT fiscal_month, min(start_date), max(end_date)
      FROM fiscal_calendar
      WHERE year=2017 
      group by fiscal_month
    

    对于具有所需格式的版本!

    SELECT  min(start_date) as start_date, max(end_date) as end_date
      FROM fiscal_calendar 
      WHERE year=2017 
      GROUP BY fiscal_month
    

    【讨论】:

    • 太棒了。我知道这是一个简单的解决方案,我只是对 SQL 很不熟悉。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2012-05-31
    • 1970-01-01
    • 1970-01-01
    • 2019-07-10
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 2021-09-26
    相关资源
    最近更新 更多