Sql 视图合并2个表

Sql 视图合并2个表,sql,sql-server,Sql,Sql Server,抱歉,如果已经有人问过我,我试着搜索,但不知道为什么 我的情况如下: 表A—包含ID、纬度和经度 表B-包含有关公司的信息以及纬度和经度 我需要创建一个视图来保存表B中每个条目的一个条目,使用表a中的数据来查找两个位置之间的距离 例如: 表A适用 id lat long 1 20 20 表B适用 id name lat long 1 A 21 20 2 B 20 21 我需要一个输出,沿着 tableAid tableBid tableAName

抱歉,如果已经有人问过我,我试着搜索,但不知道为什么

我的情况如下:

  • 表A—包含ID、纬度和经度
  • 表B-包含有关公司的信息以及纬度和经度
我需要创建一个视图来保存表B中每个条目的一个条目,使用表a中的数据来查找两个位置之间的距离

例如:

表A适用

id  lat  long
1   20   20
表B适用

id  name lat long
1   A    21  20
2   B    20  21
我需要一个输出,沿着

tableAid  tableBid  tableAName  distanceBetween
关于如何做到这一点有什么想法吗

select a.id, b.id, b.name, SQRT(power(a.lat-b.lat, 2) +  power(a.long-b.long, 2))
from #A a
Cross Apply #B b

交叉应用
-将创建表的交叉积,而不带任何连接条件。我猜了一下,你如何计算两点之间的距离

您希望使用什么功能来计算距离?或者这是您的问题?此问题中是否存在连接条件,或者是否希望计算表a中所有位置到表B中所有位置之间的距离?请在预期结果中输入一些值。我已经有SQL表达式,它将使用lat和long两个表来创建两个位置之间的距离。没有连接条件,只需要为两个表中的所有条目计算距离。i、 e A1B1、A1B2等。为什么要使用交叉应用而不是交叉连接?@RichardHansell,说实话,在这种情况下,没有理由在
交叉连接
上使用
交叉应用
。我使用apply是出于习惯,通常需要聚合一些东西,或者使用一个表值函数,将第一个表中的一列作为参数。