我试图弄清楚我是否可以根据需要调整这些结果,或者我是否需要在Crystal中编写此报告。
DATA TO CREATE TABLE:
CREATE TABLE
#TempData (
EMP NVARCHAR(35),
WKDAY NVARCHAR(3),
ENTRY_DATE DATETIME,
REG_HOURS INT,
OT_HOURS INT,
PTO_HOURS INT);
INSERT INTO #TempData (EMP, WKDAY, ENTRY_DATE, REG_HOURS, OT_HOURS, PTO_HOURS)
VALUES ('Doe, John','Fri','2018-03-16 00:00:00.000','10','2','35'),
('Boop, Betty','Fri','2018-03-16 00:00:00.000','8','3','48'),
('Boop, Betty','Mon','2018-03-19 00:00:00.000','8','8','63'),
('Square, Sponge','Mon','2018-03-19 00:00:00.000','9','7','21'),
('Rabbit, Roger','Tue','2018-03-20 00:00:00.000','5','9','45'),
('Square, Sponge','Tue','2018-03-20 00:00:00.000','9','0','9'),
('Boop, Betty','Wed','2018-03-21 00:00:00.000','0','4','18'),
('Doe, John','Wed','2018-03-21 00:00:00.000','12','4','57'),
('Matrix, Neo','Thu','2018-03-22 00:00:00.000','8','6','24');
所需的结果将如下面的Pivot Nested Columns(按列分组)所示:
WKDAY DATE Doe, John Boop, Betty Square, Sponge Rabbit, Roger
REG_HOURS OT_HOURS PTO_HOURS REG_HOURS OT_HOURS PTO_HOURS REG_HOURS OT_HOURS PTO_HOURS REG_HOURS OT_HOURS PTO_HOURS
Fri 2018-03-16 00:00:00.000 10 2 35 8 3 48 0 0 0 0 0 0
Mon 2018-03-19 00:00:00.000 0 0 0 8 8 63 9 7 21 0 0 0
Tue 2018-03-20 00:00:00.000 0 0 0 0 0 0 9 0 9 5 9 45
它应该采用这种格式,我不想通过日期或任何其他组合合并列名。
这可能吗?
我看到的唯一选择是在Crystal Reports等报告中对其进行编码。
答案 0 :(得分:0)
在表示层中进行透视。 Crystal Reports,Excel,Access,Tableau等等。
答案 1 :(得分:0)
在SQL Server中,没有列组的概念。
你可以得到这样的结果:
WKDAY DATE Doe_John_REG_HOURS Doe_John_OT_HOURS Doe_John_PTO_HOURS Boop_Betty_REG_HOURS Boop_Betty_OT_HOURS Boop_Betty_PTO_HOURS etc...
但是,在您的问题中使用两行列标题的确切格式的唯一方法是在表示层中。