我的数据库是ACCESS 2003原表 A:  原表 B: SQL语句怎么写 才能得到下面的结果???结果 : 这里的墩号 是 根据 墩号的里程 和节段的里程 来确定的里程 值 就相当与 坐标系中的x值, 代表位置每个墩号都有一个 x值 (里程),要查出 每两个墩号之间有哪些 节段这里节段 有2个点,也就有2个x值(里程),就是上图说的 节点里程小,节点里程大相当与一条线段,有两个点,所以有两个X值,而 墩号 就相当 一个点了。 这样说 可能问题还是没有说清楚,有兴趣的朋友 可以加我qq 305234089 

解决方案 »

  1.   

    楼主都发了几个帖子还没有答案?
    去sql版发帖吧
      

  2.   

    http://download.csdn.net/detail/xianfajushi/3848381下载学习去
      

  3.   

    SELECT B.id,B.segmenName, Mileage=( CASE when B.mileage IS NULL THEN (select top 1 A.mileage from A 
    where A.id<B.id 
    order by A.id desc) ELSE B.mileage END )
    FROM B
    楼主好像问过这个问题,你不是说解决了吗?我对Access不太了解,只对sql熟,你不说Access中上面的语句换成if就行了吗?
      

  4.   

    还没结?话说那里可以不用 isnull() case when 的
      

  5.   


    估计这按所谓的里程值来查询也快不到哪儿去 select B.节段编号,****, A.墩号
    from B left join A on A.里程 between B.里程小 and B.里程大 没有测试 手写而已
      

  6.   

    还是一样的 速度的话不知道是否能快一些
    SELECT B.id,B.mileageS, b.mileageB,B.segmenName,
    (SELECT TOP 1 A.id FROM A WHERE B.mileageB>A.mileage ORDER BY A.id Desc)=Mileage
    FROM B 
      

  7.   

    8楼的 报错了 ‘Between 操作符 之间没有And 在查询表达式 ’A.里程 between B.里程‘ 中