- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含年、月、日、项目和收入列的表格。每个条目都会在每个月的第一天添加。
我必须能够获得每个财政年度特定项目的总收入。到目前为止我所得到的(我认为每年都有效?)是这样的:
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/
我们有一个名为 Revenue 的多维数据集。 SELECT {[Measures].[Billable Hours]} on columns, [Period].[Financia
我想生成给定日期的通用半年开始和结束日期。 如果我有 2019-01-10,我想返回 2018-10-01 & 2019-03-31 如果我有 2019-07-01,我想返回 2019-04-01 &
我是一名优秀的程序员,十分优秀!