Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.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,我有一个与日历表连接的表,但我需要为这两个表之间的每个月填充/创建新行。即 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进行管理。我会玩的