2016-08-04 8 views
0

誰も左外部ジョインのテーブルを更新するための良いリファレンスを知っていますか?左外部ジョインのテーブルを更新する

左外部結合を実行する前に保存したい列を作成し、その列にデータを設定しますか?

segmentpatialdataを新しいテーブルに保存するか、またはsegmentpatialdataからの値を含む既存のテーブルに行を追加したいと思いますが、それを行うには挿入ステートメントがどこに行くかわかりません。

SELECT 
    a.rowid, 
    a.Season, 
    a.Name, 
    a.Latitude, 
    a.Longitude, 
    b.rowid, 
    b.Season, 
    b.Name, 
    b.Latitude, 
    b.Longitude, 
    CAST('LINESTRING(' + a.Longitude +' '+ a.Latitude +', '+ 
    b.Longitude +' '+ b.Latitude + ')' AS GEOGRAPHY) AS segmentspatialdata 
FROM 
    hurracane a 
LEFT OUTER JOIN 
    hurracane b 

ON  
    b.rowid = a.rowid + 1 
    AND b.season = a.season 
    AND b.name = a.name 

WHERE 
    b.rowid IS NOT NULL 
ORDER BY a.rowid 

1 b.rowidがNULLではありません

+0

は、なぜあなたは 'UPDATEのFROM'を使用していけないのでしょうか? – NEER

+0

「左外部結合のテーブルを更新する」に慣れていません。もっと説明できますか?サンプルクエリで、どの列を更新しますか? –

+0

これは、これを通常の結合 "b.rowid IS NOT NULL"にします。 – Paparazzi

答えて

0


は、それが定期的に参加

insert into table (segmentspatialdata) 
SELECT CAST('LINESTRING(' + a.Longitude +' '+ a.Latitude +', '+ 
b.Longitude +' '+ b.Latitude + ')' AS GEOGRAPHY) AS segmentspatialdata 
FROM 
    hurracane a 
join 
    hurracane b 
    ON b.rowid = a.rowid + 1 
    AND b.season = a.season 
    AND b.name = a.name 
+0

Hey Pap、これは新しいクエリですか、私のコードをあなたが書いたものに置き換えるべきですか?不足しているparathensisがあります。上記のように列を追加すると、次のようになります。INSERTステートメントの選択リストには、挿入リストよりも多くの項目が含まれています。 SELECT値の数は、INSERT列の数と一致する必要があります。 コメントにコードをきれいに表示するにはどうすればよいですか? – Nusc

+0

@Nuscあなたは疑問がはっきりしていません。これは「セグメントの空間データを新しいテーブルに保存したい」という回答になります – Paparazzi

+0

ありがとうございました – Nusc

関連する問題