我有两张桌子。一个包含一系列范围(tbRange),例如
ID From To Score
1 0.00 17.00 A
2 17.00 22.50 B
3 22.50 24.50 C+
4 24.50 26.50 C
5 26.50 31.50 C-
6 31.50 44.00 D
另一个表有一个总值(tbValues)和一个空的'Score'字段
BuildingID Totals Score
3065 22.10 NULL
3066 22.00 NULL
3067 23.86 NULL
我一直在尝试使用更新查询来查询tbRange以确定并填充tbValues.Score和tbRange.Score,其中我的tbValues.Totals位于tbRange.From和tbRange.To之间但我无法到达任何地方。
在上面的例子3记录中,期望的结果将是'B','B','C +'
提前致谢
答案 0 :(得分:2)
尝试像这样使用并告诉我它是否有帮助?
update aa
set aa.Score = a.Score
from tbRange as a
inner join tbValues as aa
on aa.Totals >= a.[From] AND aa.Totals < a.[To]
编辑
我没有注意到有两个24.0,所以哪个等级将首先实施? 所以基本上对此的解决方案是我们可以设置如果Total是&gt; = a.from AND Total是&lt; a.to以便它如何寻找更好的价值但是如果你想要或不想要它。
SELECT sr.AssignedTech
, i.image
FROM ScheduleRequest sr
LEFT JOIN images i on (sr.AssignedTech = i.empno)
WHERE JobStatus != 0
AND ScheduleDateExact IS NOT NULL
AND ID IS NOT NULL
AND RecordType != 2
AND JobStatus != 1
如果它运作起来如何工作?
在sql中我们有一个BETWEEN运算符,可用于在范围之间进行特定选择。