gpt4 book ai didi

按财政年度的 SQL 组数据

转载 作者:行者123 更新时间:2023-12-04 19:53:27 25 4
gpt4 key购买 nike

我有一个包含年、月、日、项目和收入列的表格。每个条目都会在每个月的第一天添加。

我必须能够获得每个财政年度特定项目的总收入。到目前为止我所得到的(我认为每年都有效?)是这样的:

SELECT year, SUM(TotalIncome)
FROM myTable
WHERE ((date Between #1/1/2007# And #31/12/2015#) AND (project='aproject'))
GROUP BY year;

基本上,我不想按年份对数据进行分组,而是按财政年度对结果进行分组。我使用了 DatePart('yyyy', date) 和结果是一样的。

我将运行从 excel 到数据库的查询。我需要能够选择年数(例如 2009 年到 2014 年,或 2008 年到 2010 年等)。我将从 excel 中的用户输入中获取年份(取两个日期,即 startYear、endYear)。

当前查询的结果给我,每年都是同年 1 月 1 日到 12 月 31 日的数据:

Year           |  Income
2009 | $123.12
2010 | $321.42
2011 | $231.31
2012 | $426.37

我希望结果看起来像这样,每个财政年度是下一年的 7 月 1 日到 6 月 30 日:

FinancialYear  |  Income
2009-10 | $123.12
2010-11 | $321.42
2011-12 | $231.31
2012-13 | $426.37

如果可能的话,我也希望能够每季度完成一次。

Also, if it matters, I have read-only access so I can't make any modifications to the database.

最佳答案

这还没有经过测试,但逻辑与 SQL query to retrieve financial year data grouped by the year 的答案相同.

SELECT fy.FinancialYear, SUM(fy.TotalIncome)
FROM
(
SELECT
IIF( MONTH(date) >= 7,
YEAR(date) & "-" & YEAR(date)+1,
YEAR(date)-1 & "-" & YEAR(date) ) AS FinancialYear,
TotalIncome
FROM myTable
WHERE date BETWEEN #1/1/2007# AND #31/12/2015#
AND project = 'aproject'
) AS fy
GROUP BY fy.FinancialYear;

进一步扩展,您也可以按季度获得:

SELECT fy.FinancialQuarter, SUM(fy.TotalIncome)
FROM
(
SELECT
IIF( MONTH(date) >= 10,
"Q2-" & YEAR(date) & "-" & YEAR(date)+1,
IIF( MONTH(date) >= 7,
"Q1-" & YEAR(date) & "-" & YEAR(date)+1,
IIF( MONTH(date) >= 4,
"Q4-" & YEAR(date)-1 & "-" & YEAR(date),
"Q3-" & YEAR(date)-1 & "-" & YEAR(date)
)
)
) AS FinancialQuarter,
TotalIncome
FROM myTable
WHERE date BETWEEN #1/1/2007# AND #31/12/2015#
AND project = 'aproject'
) AS fy
GROUP BY fy.FinancialQuarter;

关于按财政年度的 SQL 组数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33317741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com