SQL Server 中的数据清理历史表 - 构建准确的历史记录(开始日期结束日期)

问题描述 投票:0回答:1

我在 SQL Server 中有一个历史表,其中有

startdate
enddate
。我必须删除重复的记录并用准确的历史记录填充另一个表(
startdate
enddate
)。

下表 -

ProductType
列与业务无关。我必须使用
Product
ProductPrice
StartDate
EndDate
列构建表格,其中如果存在任何重复记录,则为特定产品的
startdate= min(startdate)
和连续记录的
productprice
时期。
enddate
是特定产品的
max(enddate)
productprice
是连续周期。

示例 - 当前表格如下所示:

产品 产品类型 产品价格 开始日期 结束日期
A B 100 2018-09-18 2019-09-09
A C 100 2019-09-09 2019-12-09
A B 100 2019-12-08 2019-12-22
A C 150 2019-12-23 2019-12-24
A B 100 2019-12-25 2019-12-28

我面临的问题是,通过将第一个记录的

startdate
和产品价格的最后一个记录的结束日期取为100,记录减少到2个。- 即不是准确的历史

产品 产品类型 产品价格 开始日期 结束日期
A 100 2018-09-18 2019-12-28
A 150 2019-12-23 2019-12-24

这是实际预期的历史记录

我想要实现的是:

产品 产品类型 产品价格 开始日期 结束日期
A 100 2018-09-18 2019-12-22
A 150 2019-12-23 2019-12-24
A 100 2019-12-25 2019-12-28
sql-server database ssis ssms
1个回答
0
投票

如果我理解正确,以下查询将适合您。

select product, product_type, product_price, min(start_date) as start_date, max(end_date) as end_date 
from producttype 
group by product, product_price;
© www.soinside.com 2019 - 2024. All rights reserved.