-1

我有这样的结构

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 是 lessThan(N-2); 合规性 = 完全
  2. 如果 CurrentData 表中的 currentVersion 在 greaterThan(N-2) 和 lessThan(N-4) 之间;合规性 = 部分
  3. 如果 CurrentData 表中的 currentVersion >N-5;合规 = 不合规

您能帮我查询更新表 CurrentData 的合规性列吗?

感谢和问候

4

1 回答 1

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')));

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

于 2013-07-22T13:14:07.400 回答