いくつかの列のデータ型としてnvarchar(MAX)を使用し、intをデータ型として使用するテーブルに挿入する単一のMS SQL Serverテーブルからデータを抽出しようとしています対応するnvarchar(MAX)データの場合。私はint値を提供するためにいくつかのテーブル(ルックアップテーブル?)を持っています。ルックアップテーブルを使用してテーブルをポピュレートする
MobileClientTable(ソース・テーブル)
LookupWeather
:
テーブルは、次の設計を有しますLookupArea
DestinationTable
いくつかのサンプルデータ:
MobileClientTable
LookupWeather
LookupArea
それでは、私がしたいことは、このような送信先テーブル内の行です:
ID Area Weather Details
1 4 1 None
エリアと天気の4と1がルックアップテーブルから取得されています。
私のSQLは錆び少しですが、私は限り、このSQL文として得ることができました:もちろん
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)
);
、構文が正しくありません。次のエラーが表示されます。
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 ')'.
どこが間違っていますか?
ドゥINSERT INTOのテーブル名(列リスト)SELECT ... – jarlh
@jarlhは、あなたがそれにしてください展開することができますか? VALUESのSELECTを入れ替えても違いはありません – barry