0

假设如果我有两个表,比如 leavedata 和 leavestatus,其中有一些相关的列(例如 empid、refno),现在我想在 leavedata 表中对其他一些列(即状态)进行一些更改。如何通过检查两个表中的 empid 和 refno 的值来创建函数以更新状态列

sample data

leavedata table

empid    refno     status  no.of days
101        1        pending      4



leavestatus table

empid    refno      check
101          1        null
4

1 回答 1

1

这听起来有点像你可能想要UPDATE ... FROM的,但鉴于稀疏的细节很难说。

就像是:

UPDATE leavedata
SET status = 'approved'
FROM leavestatus
WHERE leavestatus.empid = leavedata.empid 
  AND leavestatus.refno = leavedata.refno
  AND leavestatus."check" IS NOT NULL;

酌情按摩;你没有定义leavedata.check等的含义,所以我在这些方面挥手致意。请勿原封不动地运行此声明;将其用作了解您需要做什么的指南,并记住:始终在事务中进行备份和测试语句,以便您可以.ROLLBACK

顺便说一句,“检查”是一个可怕的列名;它是 SQL 标准中的保留字,不应用作标识符。你必须在"double quote"任何地方都这样做。

将来尝试更多地描述您要实现的目标,并尽可能在SQLFiddle中提供更完整的示例数据,但具有更多INSERT的 s。

于 2013-07-15T06:16:15.217 回答