表t
code,ex,x,y  //代码char(4),扩展码char(1),经度,纬度
1011,1,32.168400,118.010101
1011,2,32.168308,118.xxxxxx
2011,1,32.170000,118.xxxxxx
2011,2,32.170001,118.xxxxxx这是对于某些地点的定位,
同一个位置会有几个定位,相距较近,代码一样,扩展不同,
不同位置的代码不一样,相距较远类似这样的记录有若干条,
现在我想通过一条语句,
1、提取出同一代码,定位数据相差很大的,也就是说同一代码不在一起的
2、提取出不同代码,定位数据相差很近的,也就是不同代码反而靠在一起的,
判断是否在一起的精度为小数后3位或4位

解决方案 »

  1.   

    sql语句中就可以选择同一代码,分别取出min和max数据的记录
      

  2.   

    你可以查出二种数据然后把这二种数据用Union连接起来就可以的
      

  3.   

    1、
    select top 10 ab距离
    from t a
    left join t b on a.code=b.code and a.ex<b.ex
    order by ab距离 desc2、
    select top 10 ab距离
    from t a
    left join t b on a.code<>b.code
    order by ab距离
      

  4.   

    楼主:
        这个情况难道不是自连接吗?
    1》
    select * from t a,t b where a.code=b.code and (abs(a.x-a.x)>*** or abs(a.y-b.y)>***)
    code 相同 但是经度、纬度相差超过***
    2》
    select * from t a,t b where a.code<>b.code and (abs(a.x-a.x)<*** or abs(a.y-b.y)<***)
    这个道理也是一样的
    你看吧 至少我是这样想的 ,不知符合不符合
      

  5.   

    实际上你就是要比较t表中的任意两条数据,明显就是自连接呀,不过楼上那个 leftjoin 好像也可以
      

  6.   

    ab距离 的平方
    =
    (a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)
      

  7.   

    HelloMicrosoft 的方法有效,唉,我也曾想到过自连接,就是没能解决,智力有问题啊,哈哈