私は2つのテーブルを持っています:
- 表 1 = ガソリン スタンドの名前 (ペアで)
- Table2 = 座標情報があります (特に経度と緯度)
表1の例:
StationID1 StationID2 Name1 Name2 Lattitude1 Longitude1 Lattitude2 Longitude2 Distance
------------------------------------------------------------------------------------------------
93353477 52452 FOO BAR NULL NULL NULL NULL NULL
93353527 52452 HENRY BENNY NULL NULL NULL NULL NULL
93353551 52452 GALE SAM NULL NULL NULL NULL NULL
表2の例:
IDInfo Name Lattitude Longitude
-------------------------------------------
93353477 BAR 37.929654 -87.029622
にある座標情報でこのテーブルを更新したいと思いますtableA
。SQL Server 2005に従って次のことを試みました: マルチパート識別子 … バインドできませんでした
update table1
set t1.[Lattitude1] = t2.[Lattitude]
from table1 t1
left join table2 t2
on (t1.StationID1 = t2.IDInfo)
次のエラー メッセージが表示されます。
メッセージ 4104、レベル 16、状態 1、行 1
マルチパート識別子 "t1.Lattitude1" をバインドできませんでした。
ただし、次のようにすると、別のテーブルに保存できるようになります。
SELECT t1.[StationID1]
,t1.[StationID2]
,t1.[Name1]
,t1.[Name2]
,t2.[Lattitude] AS [Lattitude1]
,t2.[Longitude] AS [Longitude1]
,t3.[Lattitude] AS [Lattitude2]
,t3.[Longitude] AS [Longitude2]
from table1 t1
left join table2 t2
on (t1.StationID1 = t2.IDInfo)
left join table2 t3
on (t1.StationID2 = t2.IDInfo)
私は SQL に非常に慣れていないため、機能するものと機能しないものがある理由を理解するのに苦労しています。上記のリンクに基づいて、最初のクエリは機能するはずでした-いいえ?おそらく、私はこれを試すのに何時間も費やし、最終的に同僚から助けを得たので、私はまっすぐに考えていません(彼女は私が上で言及したアプローチを提案しました).