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条)

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!