在SQL SERVER的表中,如何实现部分记录的复制?
现有SQLSERVER的数据表(jjtask),jjtask有以下字段:name(姓名),number(数量),month(月份).需要从表中取出6月份的数据,再把这些数...
现有SQL SERVER的数据表(jjtask),
jjtask有以下字段:name(姓名),number(数量),month(月份).
需要从表中取出6月份的数据,再把这些数据的月份改为7月,再保存回表jjtask.
请问:该SQL语句如何实现?
这里有2部分的数据,6月份的数据不变,还是有的;
7月份的数据是从表中取出6月份的数据,再把这些数据的月份改为7月,再保存回表jjtask。
是否需要个临时表什么的?? 展开
jjtask有以下字段:name(姓名),number(数量),month(月份).
需要从表中取出6月份的数据,再把这些数据的月份改为7月,再保存回表jjtask.
请问:该SQL语句如何实现?
这里有2部分的数据,6月份的数据不变,还是有的;
7月份的数据是从表中取出6月份的数据,再把这些数据的月份改为7月,再保存回表jjtask。
是否需要个临时表什么的?? 展开
5个回答
展开全部
updaete jjtask set month=dateadd(mon,1,month) where datediff(mon,month,'6月份的第一天')=0;
说明:因为我不知道你的表中存的数据是哪一年的,所以写了【'6月份的第一天'】,你根据你的情况写上去即可,如:'2009-06-01'代表2009年6月份的第一天。
**************************
补充:
如果是保留6月份的数据的话,用下面的方法,不用临时表
insert into jjtask select(name,number,dateadd(mon,1,month)) where datediff(mon,month,'6月份的第一天')=0;
说明:【'6月份的第一天'】解释同上。
---
以上,希望对你有所帮助。
说明:因为我不知道你的表中存的数据是哪一年的,所以写了【'6月份的第一天'】,你根据你的情况写上去即可,如:'2009-06-01'代表2009年6月份的第一天。
**************************
补充:
如果是保留6月份的数据的话,用下面的方法,不用临时表
insert into jjtask select(name,number,dateadd(mon,1,month)) where datediff(mon,month,'6月份的第一天')=0;
说明:【'6月份的第一天'】解释同上。
---
以上,希望对你有所帮助。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先把六月份的数据查出来放到临时表#a 中
select * into #a from jjtask where month=6
把临时表中的月份改为7月
update #a set month=7
再把临时表里的数据插到原表中
insert jjtask select * from #a
最后删除临时表
drop table #a
select * into #a from jjtask where month=6
把临时表中的月份改为7月
update #a set month=7
再把临时表里的数据插到原表中
insert jjtask select * from #a
最后删除临时表
drop table #a
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
部分记录的话,只要在where里添加限制条件就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
update jjtask
set month=7
where month=6;
不知道你这表中month字段是否为整形?
set month=7
where month=6;
不知道你这表中month字段是否为整形?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询