Ich versuche, Daten aus einer einzigen MS SQL Server-Tabelle zu extrahieren, die Nvarchar (MAX) als Datentyp für ein paar Spalten verwendet und fügen Sie es in eine Tabelle ein, die Ints als Datentyp verwendet für die entsprechenden nvarchar (MAX) -Daten. Ich habe ein paar Tabellen (Nachschlagetabellen?), Um die int-Werte zu liefern.Füllen Tabelle mit Lookup-Tabellen
Die Tabellen haben die folgenden Ausführungen:
MobileClientTable (die Quelltabelle)
LookupWeather
LookupArea
Destination
Einige Beispieldaten:
MobileClientTable
LookupWeather
LookupArea
So was würde ich wie diese sind Zeilen in der Zieltabelle mag:
wobei 4 und 1 für Fläche und Wetter aus den Nachschlagetabellen ermittelt wurden.
My SQL ist ein bisschen rostig, aber ich habe es geschafft, soweit dieser SQL-Anweisung zu erhalten:
USE [ETLTest]
GO
INSERT INTO DestinationTable(ID, Area, Weather, Details) VALUES
(
(SELECT ID FROM dbo.MobileClientTable),
(SELECT ID FROM dbo.LookupArea WHERE Area = dbo.MobileClientTable.Area),
(SELECT ID FROM dbo.LookupWeather WHERE Weather = dbo.MobileClientTable.Weather,
(SELECT AnyOtherDetails FROM dbo.MobileClientTable)
);
Natürlich ist die Syntax falsch ist. Ich erhalte folgende Fehler:
Msg 156, Level 15, State 1, Line 6
Incorrect syntax near the keyword 'SELECT'.
Msg 102, Level 15, State 1, Line 6
Incorrect syntax near ')'.
Msg 102, Level 15, State 1, Line 7
Incorrect syntax near '+'.
Msg 102, Level 15, State 1, Line 9
Incorrect syntax near ')'.
Wohin gehe ich falsch?
INTO Tabellenname INSERT Do (Spaltenliste) SELECT ... – jarlh
@jarlh können Sie auf, dass erweitern bitte? Das einfache Auswechseln von SELECT für VALUES hat keinen Unterschied gemacht – barry