我试图计算地图上两个位置之间的距离.我存储了我的数据:经度,纬度,X POS,Y POS.
我以前使用过下面的代码片段.
DECLARE @orig_lat DECIMAL
DECLARE @orig_lng DECIMAL
SET @orig_lat=53.381538 set @orig_lng=-1.463526
SELECT *,
3956 * 2 * ASIN(
SQRT( POWER(SIN((@orig_lat - abs(dest.Latitude)) * pi()/180 / 2), 2)
+ COS(@orig_lng * pi()/180 ) * COS(abs(dest.Latitude) * pi()/180)
* POWER(SIN((@orig_lng - dest.Longitude) * pi()/180 / 2), 2) ))
AS distance
--INTO #includeDistances
FROM #orig dest
Run Code Online (Sandbox Code Playgroud)
不过我不相信这个数据,它似乎给出了稍微不准确的结果.
一些示例数据,以备您需要时使用
Latitude Longitude Distance
53.429108 -2.500953 85.2981833133896
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我解决我的代码,我不介意你是否想要修复我已经拥有的东西,如果你有一种新方法可以实现这一点,那就太棒了.
请说明您的结果所在的计量单位.
我有一些看起来像这样的数据:
SourceOfBooking
----------------
Company1 (Foo)
Company2 (Bar)
Company3 (Foo1)
Company4 (Foo2)
Run Code Online (Sandbox Code Playgroud)
我想转换它,所以我的数据只显示:
SourceOfBooking
----------------
Company1
Company2
Company3
Company4
Run Code Online (Sandbox Code Playgroud)
我试过了:
LEFT(SourceOfBooking, CHARINDEX(';', SourceOfBooking) )
Run Code Online (Sandbox Code Playgroud)
没有运气.
我敢肯定我错过了一些非常简单的事情......有人关心启发吗?
KR,詹姆斯.
如何创建具有范围的变量?这只是给我一个我不想要的默认值,我不确定如何更改。这应该很简单,并且Google搜索使我相信这是一个很普遍的问题,但是没有简单的解决方案。
imgur:http ://imgur.com/uxlRf
I have an MS Access database on a network drive with a userform which has multiple users (All using at the same time)
The form runs an update-query which will add data into a raw data table.
如果两个(或更多)用户同时运行更新查询,是否有人知道如何使这项工作?我假设必须使用临时表来完成...
谢谢,詹姆斯
我的代码如下:
REPLACE(REPLACE(cc.contype,'x','y'),'y','z') as ContractType,
Run Code Online (Sandbox Code Playgroud)
这个REPLACE是正确的我想要的,但它不幸的是当我想要时将所有"z"改为"y"
x> y
y> z
这有意义吗?我不希望所有新的Y在我的第二个REPLACE函数中再次改变.在Microsoft Access中,我将使用以下内容执行此操作
Iif(cc.contype = x,y,iif(cc.contype = y,x))
但我不确定如何在SQL中表达这一点,我最好用客户端语言做这种事情吗?
非常感谢.
编辑:也试过没有运气:
CASE WHEN SUBSTRING(cc.contype, 1, 1) = 'C'
THEN REPLACE(cc.contype, 'C', 'Signed')
CASE WHEN SUBSTRING(cc.contype, 1, 1) = 'E'
THEN REPLACE(cc.contype, 'E', 'Estimate') as ContractType,
Run Code Online (Sandbox Code Playgroud) 我正在使用SQL Server.
我有两个这样的表:
表1:
Column1, Column2, Column3, GeoLoc
-----------------------------------
a b c 0xE61...
Run Code Online (Sandbox Code Playgroud)
表2:
Column1, Column2, Column3, GeoLoc
-----------------------------------
a b c 0xE62...
Run Code Online (Sandbox Code Playgroud)
我希望得到一个输出表,它将比较两个表中的所有点,并告诉我哪里table1有一个GeoLoc在X距离内GeoLoc的位置table2.
有谁知道如何去做?一个表有大约800行,另一个表有大约300,000行.我甚至难以开始......
我有一些以varchar(10)格式存储的日期.
日期是这样的:
2008-01-06
2008-01-13
2008-01-20
2008-01-27
2008-02-03
2008-02-10
2008-02-17
2008-02-24
Run Code Online (Sandbox Code Playgroud)
我想用dd/mm/yyyy格式(也是DATE数据类型)
我尝试过以下方法:
SELECT CONVERT(VARCHAR(max), startWeek, 103) date
FROM dbo.GoogledataFinal
Run Code Online (Sandbox Code Playgroud)
为什么这个输出:
2008-01-06
2008-01-13
2008-01-20
2008-01-27
2008-02-03
2008-02-10
2008-02-17
Run Code Online (Sandbox Code Playgroud)
如果你可以修复我的代码会很棒,但我更感兴趣的是为什么这种行为正在发生,所以像我5岁那样的解释可能会有所帮助.
sql ×5
sql-server ×4
t-sql ×3
access-vba ×1
math ×1
ms-access ×1
sqlgeography ×1
ssis ×1
vba ×1