sql-server-2008 - 在 SSRS 转置上显示数据
问题描述
我想显示一些我已经转置的数据,以便它以 SSRS 顶部的日期为轴心,如下图所示:
我已经尝试通过动态 sql 查询来做到这一点,但这只会产生更多问题,因为标题每天都会更改名称。
我希望在 SSRS 上旋转数据非常容易,但我似乎无法弄清楚如何去做。
这是 SSRS 2008 / MSSQL 2012。
编辑 - 当我尝试在“日期”列上进行分组时,它在 ssrs 上出现这样的结果,这不是我想要的点击这里
编辑
我已经尝试了下面的建议,但我不知道你的意思是如何做你所说的?你的意思是在 SQL 中还是在 SSRS 中
这是我的查询
IF OBJECT_ID('tempdb..#Cass_SSRS_DailyMiTable') IS NOT NULL
DROP TABLE #Cass_SSRS_DailyMiTable
CREATE TABLE #Cass_SSRS_DailyMiTable (
[date] DATE ,[Total Orders] INT ,[Orders Done] INT ,[Pieces picked] INT ,[Items Picked] INT ,[Average Items on Order] INT ,[Picked Today] INT)
INSERT INTO #Cass_SSRS_DailyMiTable (
date,
[Total Orders],
[Pieces picked],
[Items Picked],
[Average Items on Order],
[Picked Today]) VALUES
('2017-03-24', 53, 352, 33, 22, 0),
('2017-03-25', 351, 23, 235, 52, 0),
('2017-03-26', 35, 55, 25, 95, 0)
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX);
SET @cols = STUFF((SELECT ',' + QUOTENAME(CONVERT(VARCHAR(100), c.date, 120))
FROM #Cass_SSRS_DailyMiTable c
ORDER BY c.date ASC
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query =
';WITH PreUnpivot AS
(
SELECT
C.date,
C.[Total Orders],
C.[Pieces picked],
C.[Items Picked],
C.[Average Items on Order],
C.[Picked Today]
FROM
#Cass_SSRS_DailyMiTable AS C
)
SELECT
P.Concept,
' + @cols + '
FROM
PreUnpivot AS C
UNPIVOT (
PivotedValues FOR Concept IN ([Total Orders], [Pieces picked], [Items Picked], [Average Items on Order], [Picked Today])
) AS T
PIVOT (
MAX(T.PivotedValues) FOR T.Date IN (' + @cols + ')
) AS P'
EXEC (@query)
解决方案
推荐阅读
- c - 计算和打印矩阵的对角线之和
- javascript - 如何在 Angular 中使用 addEventListener 和 postMessage?
- php - 如何将日期、时间和值从单选按钮放入数据库
- c# - 逐个像素地动态绘制和显示,有一些延迟
- npm - 如何从 Nexus oss 代理获取依赖于 github 项目的 npm 包
- django - Django 测试 - 发送包含整数的数组数组
- android - 在 android 中使用改造登录
- json - 我如何在 nunjuncks 中乘以数据?
- swift - 为什么不能在swift中将可变参数标记为inout?
- vue.js - Vue Js 2 / Vue-CLI 3 / 托管时显示空白页