0

我正在尝试对 SSRS 中的一些数据进行反透视,但正在努力获得我想要的格式。我当前的表格和数据如下所示:-

CREATE TABLE [dbo].sampledata(
[DDMMMYY] [date] NULL,
[DayN] [nvarchar](4000) NULL,
[CArticle] [int] NULL,
[TU] [int] NULL,
[Pieces] [int] NULL,
[ActualSpace] [int] NULL,
[InternalCore] [int] NULL,
[QuarantinedStock] [int] NULL,
[AvailableSpace] [int] NULL
)


insert into sampledata (DDMMMYY, DayN, CArticle, TU, Pieces, ActualSpace, InternalCore, QuarantinedStock, AvailableSpace)
VALUES
('2019-09-13','Fri','848','20403','1249144','59790','17652','433','0'),
('2019-09-16','Mon','878','21328','1253811','63133','18908','429','0'),
('2019-09-17','Tue','892','21106','1253607','61770','18780','402','0'),
('2019-09-18','Wed','910','20948','1250381','61543','18485','955','0'),
('2019-09-19','Thu','863','20351','1243131','60235','18845','627','0'),
('2019-09-20','Fri','847','19923','1242594','59565','19460','1385','0'),
('2019-09-23','Mon','863','20862','1254736','62773','18362','1418','0'),
('2019-09-24','Tue','860','20592','1259028','62864','19972','1422','0'),
('2019-09-25','Wed','871','20646','1273306','63079','20498','1430','0'),
('2019-09-26','Thu','875','20424','1264449','61508','20040','1430','0'),
('2019-09-27','Fri','884','20581','1277418','62128','20287','1430','0'),
('2019-09-30','Mon','873','21684','1341305','66764','22666','1266','0');

我永远不会返回超过 31 天的数据。

我想要做的是取消数据透视,但根据日期保持分组,完成后我的数据应该如下所示:-

例子

我希望日期在我的数据顶部运行,并且标题在左侧运行,例如 TU、Pieces 等,最初我使用 unpivot 但由于有多天,数据没有像我想要的那样延伸到右侧白天。

我曾尝试使用 SSRS 矩阵,但仍然难以获得所需的输出。

任何帮助将非常感激。

4

1 回答 1

0

以下是我将如何 UNPIVOT 您的数据:

SELECT DDMMMYY, DayN, TypeCount, DataType
FROM #sampledata
UNPIVOT (TypeCount FOR DataType IN (CArticle
      ,TU
      ,Pieces
      ,ActualSpace
      ,InternalCore
      ,QuarantinedStock
      ,AvailableSpace )
      ) u 

就个人而言,我只会使用 DATE 字段并让 SSRS 找出它是哪一天(星期一,星期二...),而不是使用 DayN 字段。

于 2019-10-07T18:59:14.620 回答