本帖最后由 felixchan 于 2009-10-16 11:34:01 编辑

解决方案 »

  1.   

    --最大的问题,对需求的描述不清晰,业务逻辑看得人是云里雾里。
    --1、我需要对选择出来的文件进行某个操作,暂时把某个操作定为——OP,在OP操作完后把此文件对应的项的FILE_STAT项的值改为1 
    --如果是对外部文件操作,在SQL中基本上无法判断操作是否完成。
    --如果是数据库内部操作,请用事务。--2、当CH_ID相同时,选择START_TIME中除去最大的其余所有项,比如表A中,当CH_ID为2时,除去RECORD_ID为14的那项,只选择RECODE_ID为1的那项,当CH_ID为3时也一样,依次类推 
    DELETE FROM table WHERE (CH_ID = 2 AND START_TIME != (SELECT max(START_TIME) FROM table WHERE CH_ID = 2);--2、有可能有多项,它们的CH_ID,START_TIME,REC_DISK,FILE_NAME相同,这代表这几项对应的需要OP操作的文件是同一个文件,为了方便,只操作一次,但修改FILE_STAT时,需要把所有这些项的FILE_STAT都改为1 UPDATE table SET FILE_STAT = 1 WHERE CH_ID = ... AND ...