小编use*_*064的帖子

基于前一行合并一行数据

我正在尝试从审计日志中构建一个历史表(最终构建一个类型 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)

audit slowly-changing-dimension dimension sql-server-2016

4
推荐指数
2
解决办法
762
查看次数