实际的需求是有设备a,b,c这三台设备的维护时间分别为1个月/次,3个月/次.9个月/次,想向b表输出该设备的名称和相关项目.比如2007或2008年的,以后还可能继续想a表中添加设备所以shedingshijian值不是确定的。
现在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
2007-5-3 12:00:00         10            2 
2007-5-3 12:00:00         7             3
2007-5-3 12:00:00         5             6
~~~~~~~~~~~~~~~~~~~~~~~~等等
表B
zhengdianbaoshi           ID    beizhu
2008-4-3 12:00:00         1    
2008-7-3 12:00:00         5
2008-12-3 12:00:00         9
2008-3-3 12:00:00          2 
2008-6-3 12:00:00         3
2008-3-3 12:00:00         6
2008-8-3 12:00:00         6~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~等等

解决方案 »

  1.   

    555555555555
    shedingshijian列是需要多少时间
    还有哪里不明白?
      

  2.   

    --这样???
    insert into 表B(zhengdianbaoshi,ID,beizhu)
    select dateadd(month,shedingshijian,kaiyongshijian),ID,beizhu
    from 表A
      

  3.   

    晕,别拿我开玩笑啊
    playwarcraft(时间就像乳沟,挤挤还是有的) xiaoku(野蛮人(^v^)) 你们俩三角的时候我就老看见你们,别拿我开玩笑
    做个啦检修软件就差这个设备维护提醒功能啦.大家帮帮忙吧
      

  4.   

    晕,别拿我开玩笑啊
    playwarcraft(时间就像乳沟,挤挤还是有的) xiaoku(野蛮人(^v^)) 你们俩三角的时候我就老看见你们,别拿我开玩笑
    --------------------
    古董级的
      

  5.   

    a,b,c这三台设备在表里哪有体现?
      

  6.   

    实际的需求是有设备n台这n台设备的维护时间分别为a表shedingshijian列的数值,想建立作业向b表输出该设备的名称和相关项目.比如2007年或2008年的所有到时间应该维修的设备,以后还可能继续想a表中添加设备所以shedingshijian值不是确定的。
      

  7.   

    偶是真看不懂~~~
    kaiyongshijian是什麼意思? shedingshijian又是什麼意思? 還有id是指設備ID?
    所謂"到时间应该维修的设备" ,又該如何判斷?
      

  8.   

    偶,難道是指
    insert into b(zhengdianbaoshi ,ID,beizhu)
    select dateadd(month,shedingshijian, kaiyongshijian ),ID,beizhu
    from a
      

  9.   

    哦,那我继续说
    例如表a的ID 为1的设备,他每次的维护时间是shedingshijian 的值为12个月,它的开用时间是kaiyongshijian列的2007-4-3 12:00:00 
    需要计算出来2007或者2008年或者以后任意年份需要维护的时间并写到b表
    把ID 为1的设备需要维护的时间写到zhengdianbaoshi 列
      

  10.   

    --try,不曉得是不是你想要的...下班啦create table a(kaiyongshijian  datetime ,     shedingshijian  int ,ID  int ,  beizhu varchar(100))
    insert into a
    select '2007-4-3 12:00:00',12,1,''  union all
    select '2007-4-3 12:00:00',15,5,'' union all
    select '2007-4-3 12:00:00',20,9,'' union all
    select '2007-5-3 12:00:00',10,2,'' union all
    select '2007-5-3 12:00:00',7,3,'' union all
    select '2007-5-3 12:00:00',5,6,'' create table b (zhengdianbaoshi datetime,ID int,beizhu varchar(100))/*SQL2000*/
    declare @n int, @year int
    set @year =2008            --設置年份
    set @n=0
    while @@rowcount>0
    begin
      set @n=@n+1
      insert into b
       select dateadd(month,shedingshijian*@n, kaiyongshijian ),ID,beizhu
       from a
      where  year(dateadd(month,shedingshijian*@n, kaiyongshijian) )=@year
    endselect * from b
    /*
    zhengdianbaoshi               ID             beizhu
    -------------------------------------------------------------------------
    2008-04-03 12:00:00.000      1
    2008-07-03 12:00:00.000      5
    2008-12-03 12:00:00.000      9
    2008-03-03 12:00:00.000      2
    2008-07-03 12:00:00.000      3
    2008-03-03 12:00:00.000      6
    2008-08-03 12:00:00.000      6 */drop table a,b
      

  11.   

    没有限制呀.一般这样的需求都有什么限制?
    hrb2008() 怎么没加我:(
      

  12.   

    是水厂的,开始应该做的就是个设备维护表就可以,我不知道怎么给做成检修设备自控系统啦.在线数据设备资料都有啦本来想把设备维护表放最后做的,我给理解错啦.他们想最先看到这个表.结果最近几天哪几个管我的轮流下来修理我,弄的脑袋痛,谢谢大家啦.总想学sql可是老没时间~不知道什么时候能有空
      

  13.   

    playwarcraft(时间就像乳沟,挤挤还是有的) 还有最后一个问题,它们是无序排列的,能按照时间来排列吗?
      

  14.   

    是指select * from b order by zhengdianbaoshi ?
      

  15.   

    insert a(kaiyongshijian,shedingshijian,ID) select '2007-5-3 12:00:00',11,15   
    insert a(kaiyongshijian,shedingshijian,ID) select '2007-5-3 12:00:00',5,16
    insert a(kaiyongshijian,shedingshijian,ID) select '2007-5-3 12:00:00',2,17
      

  16.   

    我想你可以把乳沟同志的记录先通通插到临时表里,然后再insert into a select zhengdianbaoshi,ID,beizhu from #...order by zhengdianbaoshi
    挺笨的方法,哈哈