SQL2005 版本业务员完成情况表业务员      4月完成百分比
A                 87
B                 100
C                 66
提成表(提成表的完成百分比的档次 是动态的,比如可以改成   130   110   95...不同的档次)
完成百分比       提成单价
120                     12
100                      9.5
90                         8
70                         6
30                         0要求结果业务员      4月完成百分比   提成单价
A                 87                        8
B                 100                      9.5
C                 66                        0
谢谢
    

解决方案 »

  1.   

    -- 大概这个样子
    select *, (select top 1 a.单价 from a where t.百分比较 >= a. 百分比  order by a.百分比)
    from t 
      

  2.   

    --测试数据
    if not object_id(N'Tempdb..#T') is null
    drop table #T
    Go
    Create table #T([业务员] nvarchar(21),[4月完成百分比] int)
    Insert #T
    select N'A',87 union all
    select N'B',100 union all
    select N'C',66
    GO
    if not object_id(N'Tempdb..#T1') is null
    drop table #T1
    Go
    Create table #T1([完成百分比] int,[提成单价] decimal(18,7))
    Insert #T1
    select 120,12 union all
    select 100,9.5 union all
    select 90,8 union all
    select 70,6 union all
    select 30,0
    Go
    --测试数据结束
    SELECT  * ,
            ( SELECT TOP 1
                        提成单价
              FROM      #T1
              WHERE     [4月完成百分比] >= 完成百分比
              ORDER BY  完成百分比 DESC
            ) AS 提成单价
    FROM    #T