自动排序问题,有点复杂,请高手设计个存储过程,谢谢!!

loseme915 2007-01-18 01:25:40
我遇到的问题比较复杂,希望大家帮帮我。在此先谢过!!
有三个表分别是JOBS,ITEMS,LOGIC
JOBS中有JCODE(任务编号),BEGINTIME(任务开始时间),ENDTIME(结束时间)该表用来保存任务,
ITEMS中有JCODE(从JOBS中继承过来),PCODE(人员编号),ECODE(设备编号),BETINTIME(单元开始时间),ENDTIME(结束时间)该表用来保存一个任务中包含的单元,USETIME(使用时间)
LOGIC中有JCODE(从JOBS中继承过来),FIRSTITEM(第一个单元编号),SECONDITEM(第二个单元编号)该表保存一个任务中单元之间的前后关系

说明一下,单元和单元之间的关系有三中情况,其一:一个单元对多个单元;其二:多个单元对一个单元;其三:一个单元对一个单元;每个任务的第一个单元开始时间为任务开始时间,最后一个单元结束时间为任务结束时间。前一个单元的结束时间是后一个单元的开始时间

排序要求:
一、先将所有任务按照LOGIC里面描述的顺序排列好,并且自动修改好每个ITEM的BEGINTIME,ENDTIME(每个任务的第一个ITEM时间不变,从第二个ITEM开始根据USETIME自动修改BEGINTIME和ENDTIME)
二、所有任务单独排序以后,根据PCODE和ECODE冲突规则再次排序;规则定义:如果多个ITEM指定同一个PCODE或ECODE在有交叉的时间段内那么JCODE较大的ITEM的BEGINTIME将被设置成JCODE较小的ITEM的ENDTIME,完成设置以后需要再次执行步骤一,为JCODE较大的任务单独排序

哪为大哥可以将我的要求用存储过程来实现啊?100分送上,不够再加!!谢谢
...全文
343 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiequanqin 2007-01-22
  • 打赏
  • 举报
回复
楼主,你发点例子数据,有时间就帮你瞧瞧。。。~

呵呵。。弄数据太麻烦
loseme915 2007-01-19
  • 打赏
  • 举报
回复
在每个任务中单元编号唯一。但不同的任务单元编号会重复,所以ITEMS主键是由JCODE和ICODE组成的联合主键
CREATE TABLE [dbo].[Jobs] (
[cJobCode] [char] (12) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[cBegTime] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[cEndTime] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[nUseTime] [int] NULL ,
) ON [PRIMARY]
CREATE TABLE [dbo].[Items] (
[cItemCode] [char] (4) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[cJobCode] [char] (12) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[cPeopleCode] [char] (4) COLLATE Chinese_PRC_CI_AS NULL ,
[cEquipmentCode] [char] (4) COLLATE Chinese_PRC_CI_AS NULL ,
[cBegTime] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[cEndTime] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[nUseTime] [int] NULL ,
) ON [PRIMARY]
CREATE TABLE [dbo].[Logic] (
[nID] [int] IDENTITY (1, 1) NOT NULL ,
[cJobCode] [char] (12) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[cFrontItem] [char] (4) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[cNextItem] [char] (4) COLLATE Chinese_PRC_CI_AS NOT NULL
) ON [PRIMARY]
loseme915 2007-01-19
  • 打赏
  • 举报
回复
怎么没人来看啦!!帮帮忙啊!
某鸟 2007-01-18
  • 打赏
  • 举报
回复
个人认为:其实就是两层嵌套循环嘛,里面递加时间,然后update每个记录而已……
某鸟 2007-01-18
  • 打赏
  • 举报
回复
不同任务中的单元的编号唯一否?
某鸟 2007-01-18
  • 打赏
  • 举报
回复
不同任务中的单元的编号唯一否?
dssw 2007-01-18
  • 打赏
  • 举报
回复
tmc1703 2007-01-18
  • 打赏
  • 举报
回复
关注
xiequanqin 2007-01-18
  • 打赏
  • 举报
回复
搂主提供点测试数据吧~

最好提供建表脚本和测试用 insert 语句
loseme915 2007-01-18
  • 打赏
  • 举报
回复
要说明一下哦。每个ITEM在排序以前已经指定了USETIME这个是固定的。BEGINTIME和ENDTIME需要根据排序结果来自动更新

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧