MS-Access:选择每个会计月的开始日期和日期
Posted
技术标签:
【中文标题】MS-Access:选择每个会计月的开始日期和日期【英文标题】:MS-Access: Select start date and date for each fiscal month 【发布时间】: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 语言中并没有真正的循环,对吧?
【问题讨论】:
【参考方案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 很不熟悉。谢谢。以上是关于MS-Access:选择每个会计月的开始日期和日期的主要内容,如果未能解决你的问题,请参考以下文章
更新 Bootstrap Date Range Datepicker 以仅允许结束日期在开始日期的会计年度内