tsql - TSQL Pivot - 如此简单却让我大吃一惊
问题描述
我一生都无法弄清楚为什么我的枢轴没有将基本数据分组到一行……我做错了什么?我尝试通过不对源数据进行分组、对所有源数据进行分组来重写查询……是因为枢轴值是字符串(varchar)值吗?
这太尴尬了……
Create Table #temp
(
endYear int,
schoolLevelDescription varchar(25),
staffCt int,
staffADA decimal(5,1),
trend varchar(10),
srt int
)
Insert Into #temp Select 2018, 'Elementary', 2729, 93.2, 'red', 1
Insert Into #temp Select 2018, 'Combo', 169, 91.3, 'green', 4
Insert Into #temp Select 2018, 'High', 1467, 94.6, 'red', 3
Insert Into #temp Select 2019, 'Elementary', 61, 94.8, null, 1
Insert Into #temp Select 2018, 'Middle', 1027, 94.5, 'red', 2
Select schoolLevelDescription,
[2018] y1,
IsNull([2019], '-') y2,
IsNull([2020], '-') y3,
IsNull([2021], '-') y4,
trend
From (
Select endYear,
schoolLevelDescription,
max(cast(staffCt as varchar(5)) + ' ('
+ cast(staffADA as varchar(5)) + '%)') val,
trend,
srt
From #temp
Where endYear >= 2018
Group by endYear, schoolLevelDescription, trend, srt
) src
Pivot (
max(val)
For endYear in ([2018], [2019], [2020], [2021])
) pvt
Order by srt
Drop Table #temp
解决方案
推荐阅读
- javascript - javascript最不常见子序列,实现缓存
- sql-server - 由于字段长度,在链接表上插入(从 MS Access 到 SQL Server)失败
- sql - 使用 LIKE 关键字了解索引性能
- google-apps-script - 从谷歌表到日历的时区差异
- html - 扩展引导页面内容的侧菜单行
- api-key - 使用 API 密钥在 Google Cloud Run 上获得 403 Forbidden
- javascript - Vue:是否可以导入仅适用于该组件的 js
- php - Laravel - 使用多态关系存储数据
- linq-to-sql - 如何计算 Entity Framework Core 中的特定列
- magnolia - 组件可用性的重复性限制