从一列中选择数据并根据条件更新另一列

时间:2013-07-22 12:35:12

标签: java mysql sql database oracle

我有这样的结构

Table LatestData
**Name        Version**
Name1       1.2  
Name2       1.4
Name3       1.6
Name4       1.3
Name5       2.2

Table CurrentData
Name        CurrentVersion   Compliance
Name1       1.0
Name3       0.7
Name4       1.2

我需要根据以下条件更新合规性列: N =最新版本(来自LatestData表的版本)

  1. 如果CurrentData表中的currentVersion小于(N-2);合规性=完整
  2. 如果CurrentData表中的currentVersion介于greaterThan(N-2)和lessThan(N-4)之间;合规性=部分
  3. 如果CurrentData表中的currentVersion是> N-5;合规性=不合规
  4. 是否可以帮助我查询更新表CurrentData的合规性colulmn?

    谢谢&此致

1 个答案:

答案 0 :(得分:1)

自从我编写任何SQL以来已经有一段时间了,但由于您要求进行示例查询,我认为我会尝试一下。如果事实证明它不能按预期工作,也许其他人可以纠正我的答案。

UPDATE CurrentData
JOIN LatestData on
    CurrentData.Name = LatestData.Name
SET Compilance = IF(CurrentVersion < Version - 2, 'FULL', IF(CurrentVersion > Version - 2 && CurrentVersion < Version - 4, 'Partial', IF(CurrentVersion > Version - 5, 'Not compilant', 'Nope')));

这已经过测试,应该可以正常运行=)