本帖最后由 ykdrj 于 2011-05-16 20:11:54 编辑

解决方案 »

  1.   

    不要用两个表 直接在查询的时候用CASE ..WHEN判断方便
      

  2.   

    以后每个月都有可能更改Score所对应的Level,所以设计成两个表比较方便,比如这个月>90分为A,下个月根据老板要求有可能是>95为A如果为两个表,那该如何设计tb1
      

  3.   

    下界 上界 Level
     90  100  A
     80  90   B
     70  80   C
     60  70   D
     0   60   E这样好么?设两列。。一个下界一个上界
      

  4.   


    create table #tb2
    (Name nvarchar(20), Score float)
    insert #tb2
    select '张三', 90.6 union all
    select '李四', 87.8 union all
    select '王五', 53.5 create table #tb1
    (下界 int,上界 int, [Level] char(2))
    insert #tb1
     select 90, 100, 'A' union all
     select 80, 90, 'B' union all
     select 70, 80, 'C' union all
     select 60, 70, 'D' union all
     select 0 , 60, 'E'select t2.*,t1.[Level] from #tb2 as t2 
    left join #tb1 as t1 on t2.score between t1.下界 and t1.上界