Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将快照数据转换为历史数据_Sql_Sql Server_Tsql - Fatal编程技术网

Sql 将快照数据转换为历史数据

Sql 将快照数据转换为历史数据,sql,sql-server,tsql,Sql,Sql Server,Tsql,我目前正在开发一个数据仓库,并从源系统迁移数据,该源系统每天都会对事务数据库进行快照,而不管是否有更改。如您所料,这张表多年来变得非常大(约1亿行),看起来像这样 所需的表应该如下所示 似乎您只需要通过聚合进行分组: select branchcode, productcode, min(fromsalesdate), max(tosalesdate), qtysold, amount from table t group by branchcode, productcode, qtysold

我目前正在开发一个数据仓库,并从源系统迁移数据,该源系统每天都会对事务数据库进行快照,而不管是否有更改。如您所料,这张表多年来变得非常大(约1亿行),看起来像这样

所需的表应该如下所示


似乎您只需要通过聚合进行分组:

select branchcode, productcode, min(fromsalesdate), max(tosalesdate), qtysold, amount
from table t
group by branchcode, productcode, qtysold, amount;

如果没有google Gaps和Islands的示例数据,文本(而不是图像)的示例数据将更有帮助。一个简单的分组将无法做到这一点。它可能会产生重叠。这更像是一个缺口和孤岛问题