Sql 将价值分组到具有年度细分的类别中
我有一个许可证申请表我想按类别显示每个财政年度的数据 对于我的查询,有两个键列 首先,有一个Sql 将价值分组到具有年度细分的类别中,sql,sql-server,grouping,Sql,Sql Server,Grouping,我有一个许可证申请表我想按类别显示每个财政年度的数据 对于我的查询,有两个键列 首先,有一个费用列,该列中的值决定许可证的类型 0到300之间是次要的 300到600是标准值 600到2000之间是主要的 其次,有一个日期字段,用于财政年度 我希望结果是这样的 Category | 2013/14 | 2012/13 Minor | 23 | 21 Standard | 10 | 11 Major | 5 | 3
费用列,该列中的值决定许可证的类型
- 0到300之间是次要的
- 300到600是标准值
- 600到2000之间是主要的
其次,有一个日期
字段,用于财政年度
我希望结果是这样的
Category | 2013/14 | 2012/13
Minor | 23 | 21
Standard | 10 | 11
Major | 5 | 3
我在下面有这个问题,但我不能正确地回答今年的部分。
如果有人能给我提建议,我将不胜感激
select category.gr as [category],
sum(case when ((year(licence.[start_date]) in ('2010'))
and (month(licence.[start_date]) in (4,5,6,7,8,9,10,11,12)))
or ((year(licence.[start_date]) in ('2011'))
and (month(licence.[start_date]) in (1,2,3))) then 1 else 0 end) AS '10/11 Count',
from ( select case
when [fee_INC] between 0 and 350 then 'Minor'
when [fee_INC] between 350 and 600 then 'Standard'
else 'Major' end as gr
from [L_LICENCE_FIN]) as category,
from [L_LICENCE_FIN] as licence
group by category.gr
选择
[类别],
[2013/14],
[2012/13]
从(
选择
[类别],
STR(年(日期添加(月-3,[开始日期]),4)
+'/'
+右(STR(年(月-3,[开始日期])+1,4),2)
作为[财政年度],
计数(*)为[计数]
来自@L_许可证\u FIN
内部联接(值)
(0,300,'小调'),
(300600,“标准”),
(6002000,“少校”)
)类别([最低费用]、[最高费用]、[类别])
在([费用]>=[费用最低]和[费用]<[费用最高])
分组依据[类别],[开始日期]
)p1
([2013/14]、[2012/13])p2中[财年]的枢轴(总和([count])
财政年度的定义是什么?我们的财政年度是4月至3月。谢谢。我了解其中的大部分内容,但第14行的“VALUES”出现语法错误。此外,我看不出我们在哪里陈述实际的字段名。表中的字段为“FEE_INC”
SELECT
[category],
[2013/14],
[2012/13]
FROM (
SELECT
[category],
STR(YEAR(DATEADD(month,-3,[start_date])),4)
+'/'
+RIGHT(STR(YEAR(DATEADD(month,-3,[start_date]))+1,4),2)
AS [fiscal_year],
COUNT(*) AS [count]
FROM @L_LICENCE_FIN
INNER JOIN (VALUES
( 0, 300, 'Minor'),
(300, 600, 'Standard'),
(600,2000, 'Major')
) categories([fee_min], [fee_max], [category])
ON ([fee] >= [fee_min] AND [fee] < [fee_max])
GROUP BY [category],[start_date]
) p1
PIVOT(SUM([count]) FOR [fiscal_year] IN ([2013/14],[2012/13])) p2