2016-08-04 15 views
0

Kennt jemand eine gute Referenz zum Aktualisieren von Tabellen für linke äußere Joins?Aktualisieren von Tabellen für linke äußere Joins

Erstelle ich die Spalte, die ich speichern möchte, bevor ich den linken äußeren Join ausführe, und fülle dann die Spalte?

Ich möchte segmentspatialdatas in einer neuen Tabelle speichern oder eine Zeile zu einer vorhandenen Tabelle hinzufügen, die Werte aus segmentspatialdata enthalten würde, aber ich bin mir nicht sicher, wohin die INSERT-Anweisung gehen würde, wenn ich dies tun würde.

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

+0

beitreten Warum Sie 'UPDATE FROM' nicht verwenden? – NEER

+0

Ich bin nicht vertraut mit "Tabellen für linke äußere Joins aktualisieren". Kannst du es weiter erklären? Welche Spalte möchten Sie in Ihrer Beispielabfrage aktualisieren? –

+0

dies macht es zu einem regulären Join "wo b.rowid NICHT NULL ist". – Paparazzi

Antwort

0

wo b.rowid IS NOT NULL
macht es zu einem regelmäßigen

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, ist das eine neue Frage oder sollte mein Code durch was ersetzt werden? Es gibt eine fehlende Parathensis. Wenn ich Spalten wie oben hinzufügen, dann bekomme ich: Die Auswahlliste für die INSERT-Anweisung enthält mehr Elemente als die Einfügeliste. Die Anzahl der SELECT-Werte muss mit der Anzahl der INSERT-Spalten übereinstimmen. Wie zeige ich Code in den Kommentaren ordentlich an? – Nusc

+0

@Nusc Sie Frage ist nicht klar. Dies wäre die Antwort auf "Ich möchte segmentspatialdaten in einer neuen Tabelle speichern" – Paparazzi

+0

THat arbeitete Danke – Nusc