如何将当月数据复制为sql中的上月数据(我提供了一个查询示例,其中包含3条记录,但它如何处理多条记录)

如何将当月数据复制为sql中的上月数据(我提供了一个查询示例,其中包含3条记录,但它如何处理多条记录),sql,sql-server,tsql,Sql,Sql Server,Tsql,这是我的问题 我有一个包含10条记录的表(日期列显示2016-11-25所有记录),现在下个月又插入了10条记录,现在它包含20条记录(日期列显示2016-11-25 10条记录),(日期列显示2016-12-17 10条记录)现在我要做的是,我必须将所有这20条记录复制到同一个表中,并将日期插入(每个月底)2016-06-30和2016-07-31。如果你还有问题,请告诉我 如果你没有得到这一点,我提供了一个小的sql查询,做同样的操作,请通过这一点,让我知道我如何可以做到这一点,请 --范例

这是我的问题

我有一个包含10条记录的表(日期列显示2016-11-25所有记录),现在下个月又插入了10条记录,现在它包含20条记录(日期列显示2016-11-25 10条记录),(日期列显示2016-12-17 10条记录)现在我要做的是,我必须将所有这20条记录复制到同一个表中,并将日期插入(每个月底)2016-06-30和2016-07-31。如果你还有问题,请告诉我

如果你没有得到这一点,我提供了一个小的sql查询,做同样的操作,请通过这一点,让我知道我如何可以做到这一点,请

--范例--

--现在我需要插入与相同的行,但它的日期应该是6月、7月、8月、9月

--以下是TEMP1中的结果(TEMP2结果)

--结果必须是#TEMP2


--当有新记录插入此表时,它必须从6月复制到本月

如果突出显示代码段并按下代码示例按钮(位于文本输入区域上方),则它会将代码示例格式化为更可读的格式。在SQL Server 2012及更高版本中,此函数存在。这也似乎非常非常非常多余,有些毫无意义。比我在上一句中使用的次数要多。你不应该真的把这些数据存储在一个表中,你应该把它放在一个视图或一个存储过程中。我不会说创建一个日历表(这是一个基本的开始)是多余的,如果我们理解了最终目的,我们可能会发现它是。您确定带月末日期的行应该与带原始记录的行位于同一个表中吗?此代码只运行一次,还是希望在后续月份生成此月末数据?不要将日期存储为字符串。曾经读亚伦·伯特兰的。
CREATE TABLE #TEMP1 (NAME VARCHAR(100), PLACE VARCHAR(100), [DATE] VARCHAR (100));
INSERT INTO #TEMP1 VALUES ('A','USA', '2016-10-16') ,('B','UK', '2016-11-18') ,('C','ASIA', '2016-11-12');
SELECT * FROM #TEMP1
CREATE TABLE #TEMP2 (NAME VARCHAR(100), PLACE VARCHAR(100), [DATE] VARCHAR (100))

INSERT INTO #TEMP2 VALUES 
('A','USA', '2016-06-30') ,('B','UK', '2016-06-30') ,('C','ASIA', '2016-06-30') 
---JUNE 
,('A','USA', '2016-07-31') ,('B','UK', '2016-07-31') ,('C','ASIA', '2016-07-31') 
---JULY 
,('A','USA', '2016-08-31') ,('B','UK', '2016-08-31') ,('C','ASIA', '2016-08-31') 
--- AUG 
,('A','USA', '2016-09-30') ,('B','UK', '2016-09-30') ,('C','ASIA', '2016-09-30') 
--- SEP 
,('A','USA', '2016-10-31') ,('B','UK', '2016-10-31') ,('C','ASIA', '2016-10-31') 
--- OCT 
,('A','USA', '2016-11-30') ,('B','UK', '2016-11-30') ,('C','ASIA', '2016-11-30') 
--- NOV 
,('A','USA', '2016-12-31') ,('B','UK', '2016-12-31') ,('C','ASIA', '2016-12-31')
 --- DEC

SELECT * FROM #TEMP2