表1  发货记录  客户   产品    发货日期      扣率
                A       B      2011-4-2
                。
                。
                。表2  折扣表     客户   产品    折扣日期       扣率
                A        B       2011-1-3     0.1
                A        B       2011-3-3     0.3
                A        B       2011-8-3     0.5
                。
                。
                。
表1的发货日期2011-4-2 是在  2011-3-3  与 2011-8-3 之间, 希望能取到 0.3 的扣率写到表一扣率,如何算呢?万分感谢!
表一,表二 都是很多客户,很多产品的,根据客户和产品以及时间段三个条件匹配

解决方案 »

  1.   

    用convert对时间字段进行格式转换,就可以做比较了;例如:
    convert(dateField,....)>'2011-3-3'
    具体用法LZ自己去查下,我也记不清楚了。
      

  2.   

    select
     *,
      (select top 1 扣率 from 折扣表 where 客户 = t.客户 and 产品 = t.产品 and 折扣日期 <= t.发货日期 order by 折扣日期 desc) 扣率
    from
     发货记录表 t
      

  3.   


    select *,
        (select top 1 扣率 from 折扣表 where 客户 = t.客户 and 产品 = t.产品 and 折扣日期 <= t.发货日期 order by 折扣日期 desc) 扣率
    from 发货记录表 t
    http://topic.csdn.net/u/20110826/07/3b03ee38-179f-4737-8b58-4b0dcb1b6ee1.html