【发布时间】:2020-01-31 14:13:21
【问题描述】:
我想在我的数据库中填写缺失的日期,但我有不同的组。新单元格应填写每个物料编号的最新日期值
这就是我的database 现在的样子:
Date [YYYY-MM-DD] Materialnumber Amount
2019-01-01 X 5
2019-01-15 X 7
2019-01-20 X 2
2019-02-02 X 8
2019-01-03 Y 756
2019-01-18 Y 750
2019-02-22 Y 720
2019-03-05 Y 820
我希望它看起来像这样:
Date [YYYY-MM-DD] Materialnumber Amount
2019-01-01 X 5
2019-01-02 X 5
2019-01-03 X 5
2019-01-04 X 5
...
2019-01-15 X 7
2019-01-16 X 7
2019-01-17 X 7
...
2019-01-01 Y 756
2019-01-02 Y 756
2019-01-03 Y 756
...
2019-01-18 Y 750
2019-01-19 Y 750
...
我通过以下方式创建了一个calendar 表:
WITH CTE_DatesTable
AS
(
SELECT CAST('20190101' as date) AS [Date]
UNION ALL
SELECT DATEADD(dd, 1, [date])
FROM CTE_DatesTable
WHERE DATEADD(dd, 1, [date]) <= '20191231'
)
SELECT [date]
KSH_calendar
FROM CTE_DatesTable
OPTION (MAXRECURSION 0);
我试过了:
select c.[Date]
,b.Materialnumber
,b.Amount
from KSH_calendar as c
left join database as b on c.[Date] = b.[MKPF_CPUDT]
但这并没有让我得到预期的结果。甚至没有谈论获得最新价值。 有没有人有一些想法/链接让我更接近结果?
使用 Microsoft SQL Server 2017(版本 ID 14)
亲切的问候,
【问题讨论】:
-
您使用的是哪个 dbms?
-
@jarlh 我使用的是 MS SQL Server 2017(版本 ID 14)
标签: sql sql-server date group-by calendar