我是sql(脚本)的新手。单个CRUD命令没有问题,但我正在尝试创建一个存储过程,它将使用相同选定表的结果更新具有计算值的表。
表中有一个值,其中包含每位员工的休假总时数以及去年剩余休假时间的值。
我将努力实现的是将今年的新工作时间添加到剩余时间。有一个问题。新的小时列是整个小时,剩余小时是'滴答'的值,是100纳秒。
如何使用相同的表格作为此计算的参考来更新表格?
example table:
employee, vacation, remainingvacation
new value of remainigvacation = vacation(in hours) * 60(minutes) * 60(seconds) * 10^9 (to convert to ticks) + remainingvacation (in ticks)
答案 0 :(得分:4)
UPDATE
myTable
SET
remainingvacation = (vacation * 60 * 60 * POWER(10, 9)) + remainingvacation
在包含JOINS和WHERE子句后,您可以这样做......
UPDATE
myTable
SET
remainingvacation = (vacation * 60 * 60 * POWER(10, 9)) + remainingvacation
FROM
myTable
INNER JOIN
yourTable
ON myTable.id = yourTable.id
WHERE
yourTable.value = 'Egyptian Holidays'
答案 1 :(得分:-1)
您为什么要存储和处理“休假时间”:
对于数据类型TIME,您应该在所有相关过程中消耗TIME的所有位置使用相同的单位-天,小时,甚至几纳秒。
跨数据库的一致性是必须的,不要引入不必要的单元和数据类型。即使只用几秒钟也足够。