使用结果集更新使用计算值选择的相同表

时间:2011-12-19 12:17:40

标签: sql stored-procedures

我是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)

2 个答案:

答案 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)

您为什么要存储和处理“休假时间”:

  • 一次整数
  • 一次进入NANOSECONDS吗?

对于数据类型TIME,您应该在所有相关过程中消耗TIME的所有位置使用相同的单位-天,小时,甚至几纳秒。

跨数据库的一致性是必须的,不要引入不必要的单元和数据类型。即使只用几秒钟也足够。

相关问题