在“从”和“到”字段中查找值之间的值并更新表

时间:2018-06-07 14:52:19

标签: sql sql-server-2012

我有两张桌子。一个包含一系列范围(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 +'

提前致谢

1 个答案:

答案 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运算符,可用于在范围之间进行特定选择。