これは簡単なはずですが、私はそれを理解していません。さまざまなソースから入力している一時テーブルがあります。一時テーブルには、同じサブディビジョン名を持つ可能性のある一連の行があります。サブディビジョン名が同じ場合、そのサブディビジョンのすべての行に、そのサブディビジョンの緯度と経度の上位が表示されるようにします。iSource = to 1 または 2 を持つ一時テーブル内のすべてのサブディビジョンに対してこれを行う必要があります。iSource フィールドはさまざまなソースです。0 が最も信頼性が高く、4 番目は緯度も経度もありません。
一時テーブル
SubdivisionName Latitude Longitude iSource
A 100 200 0
A 100 200 0
A 102 200 2
B 104 202 1
B 105 203 1
B 106 202 2
望ましい結果
SubdivisionName Latitude Longitude iSource
A 100 200 0
A 100 200 0
A 100 200 2
B 104 202 1
B 104 202 1
B 104 202 2
これを試してみましたが、SQL Server 2005 は私のプレフィックス TT または TTT を好みません。正しい方向に私を向けることができますか?
WITH #TempTable
AS
(
SELECT TTT.*
, ROW_NUMBER() OVER(PARTITION by SubdivisionName ORDER BY iSource) AS rnk
from #TempTable TTT WHERE iSource IN (1,2)
)
UPDATE #TempTable
SET FieldSheetLat = TTT.FieldSheetLat, Longitude = TTT.FieldSheetLong