0

好的,我需要一些帮助。我想我可能已经看这个太久了,它弄乱了我的大脑。我有一张桌子,我们称之为目标。在此表中,我有以下 4 列:

StaffID 示例 (123) Syear 示例 (2011) Smonth 示例 (7) SGoal 示例 (104.2)

我需要的是汇总财政年度的 SGoal 列,即一年的第 7-12 个月和下一年的 1-6 个月。问题是我需要这个循环,我的意思是它不能是特定年份的。未来几年,我将使用此查询在 BIZ 中运行报告。所以我认为它可以通过两种方式完成,通过查询或以某种方式修改表。无论哪种方式,任何帮助都将不胜感激。

4

2 回答 2

1

最好将会计年度计算放入视图中,但这是在查询中执行此操作的一种方法

SELECT staffid, syear+(((smonth+1)&8)/8) as fiscalyear, sum(sgoal) AS 'sum' 
FROM goals 
GROUP BY staffid, syear+(((smonth+1)&8)/8) 
于 2013-07-12T17:46:33.710 回答
0

尽管存储财政年度会是一个更好、更优雅的解决方案,但这样的事情会起作用。

select staffId, fiscal_year, sum(sGoal) from (
select staffid, sGoal, if (sMonth > 6, sYear, sYear-1) as fiscal_year
  from goals ) as fiscal
group by staffId, fiscal_year

SQL小提琴

于 2013-07-12T16:29:54.197 回答