可以为跳过的月份创建行的SQL查询
我有一个与日历表连接的表,但我需要为这两个表之间的每个月填充/创建新行。即可以为跳过的月份创建行的SQL查询,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有一个与日历表连接的表,但我需要为这两个表之间的每个月填充/创建新行。即 Date GIS CODE Running Total Open 2007-04-30 BEJOORDING, 6566, WESTERN AUSTRALIA 5 2007-09-30 BEJOORDING, 6566, WESTERN AUSTRALIA 6 我需要一些可以在2007-04-30和2007-09-30之间创建月末日期行的查询。 然
Date GIS CODE Running Total Open
2007-04-30 BEJOORDING, 6566, WESTERN AUSTRALIA 5
2007-09-30 BEJOORDING, 6566, WESTERN AUSTRALIA 6
我需要一些可以在2007-04-30和2007-09-30之间创建月末日期行的查询。
然后我需要用最新的字段填充空格,这样我就有了所有月末值的时间线
我假设我将不得不使用某种CTE表,但我在这方面不是最好的/确切地了解它们是如何工作的
任何帮助都将不胜感激。可以通过使用EOMOUNT函数右键连接到日历表的子查询来实现。此CTE查询将为您提供一个包含表中第一个和最后一个值之间的所有月末值的表,我假定该值为log。然后,您可以将其左键联接到表中,以便为timespan中的所有月份创建行
WITH CTE AS (
SELECT MIN(Date) AS [Date], MAX(Date) AS Max_Date FROM log
UNION ALL
SELECT EOMONTH(DATEADD(MONTH, 1, [Date])), Max_Date
FROM CTE
WHERE Date < Max_Date
)
SELECT Date
FROM CTE
在日历表的日期使用左键连接对于每个日期的多个观察是否有效?很难具体回答,因为这些细节不在问题中,但是的,它可能可以通过GROUP ByThank进行管理。我会玩的