SQL连接表B范围内的值

Jso*_*ham 12 sql t-sql sql-server sql-server-2008

我有两个表可以在附图中看到.

表A包含Department,MonthAverage.

表B包含Month,Year,RangeStart,RangeEndColor.

如果您查看表B的屏幕截图,您将看到每个月都有绿色,黄色,橙色和红色值.你也有一个范围.

我需要的.........

我需要一个名为"Color"的表A新列.在本专栏中,我需要绿色,黄色,橙色或红色.将颜色分配给月份的决定因素是"平均"列.

例如:

DepartmentA for May's Average等于0.96 参考表B,我可以看到第8 0.75+行将是它适合的范围.因此,红色是我希望在Mays平均值旁边放置在表A中的颜色.

我已经将RangeEnd保留为每月最高范围,因为它基本上是NULL 75+,比0.75这里的插槽更大.

任何人都可以指出我正确的方向,这不是太耗时.

在此输入图像描述

Rom*_*onz 20

你可以直接使用它:

select *
from table a
    join table b
        on a.month = b.month
           and a.average between b.rangestart and isnull(b.rangeend,10000) -- 100000 = greater than max value
Run Code Online (Sandbox Code Playgroud)