日期:2014-05-19  浏览次数:20562 次

hrb2008() roy_88(中国风_燃烧你的激情!!!在吗?还要麻烦你们一下
能不能改成作业形式?有时候需要提前把下一年的计划提前做出来?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
实际的需求是有设备a,b,c这三台设备的维护时间分别为1个月/次,3个月/次.9个月/次,想到时间自动向b表输出该设备的名称和相关项目.
现在a表内容如下

kaiyongshijian                       shedingshijian     ID         beizhu
2007-4-3   12:00:00                   12                         1        
2007-4-3   12:00:00                   15                         5
2007-4-3     12:00:00                 20                         9
~~~~~~~~~~~~~~~~~~~~~~~~等等
表B
zhengdianbaoshi                       ID         beizhu
2008-4-3   12:12:00                   1        
2008-7-3   12:15:00                   5
2008-12-3   12:20:00                   9
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~等等


------解决方案--------------------
a,b,c这三台设备在表中如何体现?
用作业可以的
------解决方案--------------------
帮你叫他出来
------解决方案--------------------
当我们装SQl2000时,遇到文件挂起,可以按以下方法解决:
1.不用退出SQL2000安装程序,直接切换到桌面.
2.打开注册表编辑器(在“运行”中敲入“regedit”之后回车即可),定位到注册表的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager节点.
3.单击“Session Manager”这个节点,然后在右侧的窗口中找到把“PendingFileRenameOperations”选项删除
4.关掉注册表编辑器,切换回SQL2000安装程序,后退一步,然后再点下一步即可解决!
------解决方案--------------------
job里面加下面的语句
declare @date datetime --下年时间变量
set @date=cast(year(getdate())+1 as varchar)+ '-12-31 '
--
declare upcur cursor for
select kaiyongshijian,shedingshijian,ID from a
DECLARE @kaiyongshijian DATETIME,@shedingshijian INT,@ID INT,@i INT

OPEN upcur
FETCH upcur INTO @kaiyongshijian,@shedingshijian,@ID
WHILE @@FETCH_STATUS=0
BEGIN
SET @i= DATEDIFF(month,@kaiyongshijian,GETDATE())/@shedingshijian+1 --自装设备起至今维护次数
while dateadd(month,@shedingshijian*@i,@kaiyongshijian) <@date
begin
insert into b select dateadd(month,@shedingshijian*@i,@kaiyongshijian),@id,null
set @i=@i+1
end
END
------解决方案--------------------
馬甲:)
那邊寫了一個啊,要是把條件換成year(..) between 2007 and 3000
就可以一下子將很多時間都插到表b了,也省事了