wodeqq584958184 2018-04-22 15:05 采纳率: 77.8%
浏览 737
已采纳

关于一个SQL server项目编程问题

问题或许很很难很复杂,但是我还是希望有人能帮我解决下,本人是刚刚出来学校的实习生,现在实习的公司,我上司安排了个项目给我,但是没有人带,我上司也只是懂接触过一点点SQL server,但并不是专家,现在项目凭着我自己翻寻各种百度和CSDN,完成了一半进度,但是现在真的遇到难题了,不知道怎么往下编写程序了,希望求各路SQL server大神、高手、专家帮我解决这个问题,如果可能我觉得下面的思路还是不清晰,可以加我QQ:584958184

图1
图2
来讲下问题吧,就是计算时间差和传递的问题,目前表里的数据是我手动输入的,但实际上是机器开启后(机器状态为0的时候就是恢复运行状态),数据自动往table4插入的,由于后期数据量很大,有个百度吧友建议我用游标来做,可是我不会用游标......

我来说下效果的思路:
当table4中每次出现的一条错误代码记录时(当location、pointer和ng-itime字段下有数据时,就是一条错误代码),用它们下一条状态记录machine-itime的时间(状态记录的时间也就是machine-status字段为0值的machine-itime字段)减去它自己的ng-itime时间,得出来的时间差值就是这条错误代码的持续时间。并且把这个值传递去table5去,但这个传递有条件,就是以错误类型为条件(table4中的location+pointer字段就是一个类型),例如table4中(图1),出现了3条错误代码,类型分别为sta080 63、zone6 49和System 481,每条错误代码的的下一条状态记录的时间(machine_itime)减去它们各ng_itime,得出来的时间差值要传递到table5对应类型的错误代码中,并把此值插入到time字段中(table5表图是图2)。

还要注意的是,table4的每一条错误代码记录,肯定会有重复出现的,重复出现的错误代码,经过计算出来的时间差值,然后选择table5相对应的错误代码类型,要与旧记录的时间差值进行叠加!!!并不是替换,而是旧记录与新纪录进行相加~!!

  • 写回答

4条回答 默认 最新

  • 踮脚敲代码 2018-04-23 03:17
    关注

    用存储过程把整个逻辑写出来,然后给table4添加个插入触发器再调用存储过程就行,详细扣扣谈

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥20 Js代码报错问题不知道怎么解决
  • ¥15 gojs 点击按钮node的position位置进行改变,再次点击回到原来的位置
  • ¥15 计算决策面并仿真附上结果
  • ¥20 halcon 图像拼接
  • ¥15 webstorm上开发的vue3+vite5+typeScript打包时报错
  • ¥15 vue使用gojs,需求在link中的虚线上添加方向箭头
  • ¥15 CSS通配符清除内外边距为什么可以覆盖默认样式?
  • ¥15 SPSS分类模型实训题步骤
  • ¥100 求ASMedia ASM1184e & ASM1187e 芯片datasheet/规格书
  • ¥15 求解决扩散模型代码问题