2017-12-02 5 views
0

緯度が長い方と緯度が長い方を選んでみてください:SQL Serverから緯度と経度を持つ行を取得しようとしています

彼らは出荷前に注文がERPシステムに入ってきたので

enter image description here

データの一部が緯度と1と0の長いを持っている理由は、我々は、マップ内でこれらの命令の半径を見たいと思っています。この顧客のために緯度や経度がある場合とない場合でも、事実を実際の表に入れることを望みます。

基本的に私はjosh Deshazerのような顧客がいて、彼は緯度と経度なしでシステムに入ったので2つの重複した行を持っています。最終的に彼は自分のレコードで緯度と経度を取得しました。緯度と経度、そして、マイク・ダヴィスのような顧客がいても、彼は良い緯度と長さを持っていなくても、私は依然として彼をすべてクエリで選択したいと思う。

本質的にジョシュ・デスハーザー14.5と12.2 -93と45のみのkenジョンソンと1と0のすべてのmike davisを1つのクエリで使用します。この人が私を殺している提案にあなたの助けを借りてくれてありがとう。

+0

を正しい緯度/経度の入力? – Vashi

答えて

1

あなたはこの試しくださいROW_NUMBER関数

SELECT 
     Long,Lat,FirstName,lastName,OrderNumber FROM 
    (
     SELECT Long,Lat,FirstName,lastName,OrderNumber, 
      ROW_NUMBER() OVER (PARTITION BY Long,Lat ORDER BY Long,Lat ) rn 
     FROM #TMP 
    ) t 
    WHERE t.rn = 1 
    ORDER BY FirstName,lastName 

Check THe Image Shows you Desire Outpt You Are looking for

+0

ありがとう、お元気ですか、本当にありがたいです。 –

+0

@JoshuaDeshazerようこそ –

0

を使用することによって、これを達成することができます:経度緯度との重複を持つすべてのレコードの1と0になります

(SELECT long, Lat, FirstName, LastName, OrderAmount, OrderNumber  
FROM 
your_table 
WHERE OrderNumber IN (SELECT OrderNumber FROM your_table GROUP BY OrderNumber HAVING COUNT(*) > 1) 
AND (long <> 1 AND Lat <> 0)) --Conditions in this line can be tweaked based on how your definition of bad lat/long works 
UNION ALL 
(SELECT long, Lat, FirstName, LastName, OrderAmount, OrderNumber  
FROM 
your_table 
WHERE OrderNumber IN (SELECT OrderNumber FROM your_table GROUP BY OrderNumber HAVING COUNT(*) = 1)); 
関連する問題