我正在尝试从审计日志中构建一个历史表(最终构建一个类型 2 的维度表)。不幸的是,审计日志只记录正在更改的特定字段。这是我正在谈论的一个粗略的例子;
CREATE TABLE Staff(
[ID] int,
[Surname] varchar(5),
[FirstName] varchar(4),
[Office] varchar(9),
[Date] varchar(10)
);
INSERT INTO Staff ([ID], [Surname], [FirstName], [Office], [Date])
VALUES
(001, 'Smith', 'Bill', 'Melbourne', '2015-01-01'),
(001, NULL, NULL, 'Sydney', '2015-03-01'),
(002, 'Brown', 'Mary', 'Melbourne', '2014-04-01'),
(002, 'Jones', NULL, 'Adelaide', '2014-05-01'),
(002, NULL, NULL, 'Sydney', '2015-01-01'),
(002, NULL, NULL, 'Perth', '2015-03-01');
Run Code Online (Sandbox Code Playgroud)
特定工作人员的第一个条目是创建他们的记录的时间,每个后续记录都是更新...但仅显示对已更新字段的更新*。我想用当前员工记录的其余部分“填写”更新行。即,这样的结果;
001, Smith, Bill, Melbourne, 2015-01-01
001, Smith, Bill, Sydney, 2015-03-01
002, Brown, Mary, Melbourne, 2014-04-01
002, Jones, Mary, Adelaide, 2014-05-01
002, …
Run Code Online (Sandbox Code Playgroud)