一.表
if exists (select * from sysobjects where id = OBJECT_ID('[任务列表]') and OBJECTPROPERTY(id, 'IsUserTable') = 1) 
DROP TABLE [任务列表]CREATE TABLE [任务列表s] (
[id] [int]  IDENTITY (1, 1)  NOT NULL,
[任务内容] [ntext]  NULL DEFAULT (''),
[状态] [int]  NULL DEFAULT (''),
[到期日期] [smalldatetime]  NULL DEFAULT (''),
[重复提醒] [int]  NULL DEFAULT (0))
------------------------------------------------------------------------------------------
1.单表操作
2.有一表字段:重复提醒(0.重复提醒 1.只提醒一次 2.不提醒)二.实现功能
根据时间查询过期的信息,然后在表中插入过期的信息(同一表中插入,状态改变,其它不变)
要求:
    写一插入语句
    当表字段:[重复提醒]值为1时,只插入一条同样信息. 
                         为0时能继续插入(表示可以重复插入)注:这条语句每天都会执行一遍以查看是否有过期的信息

解决方案 »

  1.   

    感觉描述的还不清楚
    当表字段:[重复提醒]值为1时,只插入一条同样信息.   --何为同样的信息
      为0时能继续插入(表示可以重复插入)              --继续插入哪了些信息
    TRYINSERT ITNO 任务列表A
    select *FROM 任务列表A WHERE 到期日期='2010-09-11' and 重复提醒=1
      

  2.   

    谢谢楼上的.怎样让:重复提醒=1时,下面插入语句只执行一次(为0时,这个插入语句可以随时插入)
       INSERT ITNO 任务列表A
    select *FROM 任务列表A WHERE datediff(day,到期日期,getdate())>=0
      

  3.   

    insert into 任务列表 (任务内容,状态,到期日期,重复提醒)
    select 任务内容,状态,到期日期,2 as 重复提醒 from 任务列表 where count=2 and 到期日期>getdate()--只提醒一次
    union
    select 任务内容,状态,到期日期,重复提醒 from 任务列表 where count=5 and 到期日期>getdate()--反复提醒
    不知道你的数据库是什么。创建个作业每天执行一次就可以了。
      

  4.   


    那就判断下
    --插入一次就判断数据表中是否有以前是否有插入过
    INSERT ITNO 任务列表A
    select *FROM 任务列表A WHERE 到期日期='2010-09-11' and 重复提醒=1 and
                            not exists(select .....)
      

  5.   

    复述一下你的题目:
      当【重复提醒】为1时只插入一条。。也就说整张表有两条一样的信息
      当【重复提醒】为0时每天插入一条。。也就说整张表中同一条信息过期多少天就有多少条重复的数据
      当【重复提醒】为2时不插。。整张表这条记录唯一
    不知道楼主的意思我领悟了没

    INSERT ITNO 任务列表A SELECT *FROM 任务列表A WHERE (DATEDIFF(DAY,到期日期,GETDATE())=1 and 重复提醒=1)
    INSERT ITNO 任务列表A SELECT *FROM 任务列表A WHERE (DATEDIFF(DAY,到期日期,GETDATE())>1 and 重复提醒=0)我正在使用《Csdn收音机》第一时间获取最新动态!
      

  6.   

    --此作业实现功能逻辑
    --功能:每八个小时遍历一次数据,查询出过期2天的信息[重复提醒为0的要重复提醒,为1的只提醒一次]
    --1.查询出操作员、状态、时间和重复提醒不为2(没提醒过)的复制一条,复制时任务类型变成6(表提醒)
    insert into 任务列表(操作员id,任务类型,状态,任务主题,到期日期,下达人,重复提醒,资料ID)
    select 操作员id,6 as 任务类型,0 状态,'过期提醒:'+任务主题 as 任务主题,到期日期,下达人,2 as 重复提醒,资料ID from 任务列表 where DATEDIFF(day, 到期日期, getdate())>=2 and 状态=0 and 任务类型=1 and 重复提醒<>2 --2.在复制后,把只提醒一次的重复提醒值变成2(重复提醒0值不变),表示只提醒一次的已经提醒过
    update 任务列表 set 重复提醒=2 where 状态=0 and DATEDIFF(day, 到期日期, getdate())>=2 and 重复提醒=1