私が何かを逃していない限り、あなたはこれを行うことができるはずです:
insert into Table (IDclient,NewName,IDRole,Initials)
select (select id from X where name=Contacts.Company) as IDClient,
FirstName + right(' '+ cast(LastName as varchar(20)), 20) as NewName,
(select id from Y where newid=8 and description=Contacts.JobTitle) as IDRole,
Initials
from Contacts
INSERT INTO...SELECT...FROM..
構文を使用するだけです。
ここで、テーブルがない場合はSELECT..INTO
、新しい一時テーブルを作成できます。
select (select id from X where name=Contacts.Company) as IDClient,
FirstName + right(' '+ cast(LastName as varchar(20)), 20) as NewName,
(select id from Y where newid=8 and description=Contacts.JobTitle) as IDRole,
Initials
into #table
from Contacts
または、これに結合を使用する場合は、次のようにします。
insert into Table (IDclient,NewName,IDRole,Initials)
select x.id as IDClient,
c.FirstName + right(' '+ cast(c.LastName as varchar(20)), 20) as NewName,
y.id as IDRole,
c.Initials
from Contacts c
inner join x
on x.name=c.Company
inner join y
on y.description=c.JobTitle
and y.newid=8
これで、元の投稿に次の挿入が表示されます。
insert into Table (IDclient,NewName,'',IDRole,Initials,NULL)
名前のないフィールドが2つありますが、これは正しい構文ではありません。insertステートメントで、列に名前を付けずにすべてに挿入するか、値を挿入する列に名前を付ける必要があります。空の文字列''
またはnull
列名として使用することはできません。これらの値を挿入する場合は、それらの名前を指定する必要があります。
insert into Table (IDclient,NewName,col3,IDRole,Initials,col5)
select x.id as IDClient,
c.FirstName + right(' '+ cast(c.LastName as varchar(20)), 20) as NewName,
'' as col3
y.id as IDRole,
c.Initials,
null as col5
from Contacts c
inner join x
on x.name=c.Company
inner join y
on y.description=c.JobTitle
and y.newid=8
編集内容に基づいて、以下を使用する必要があります。
-- this insert line should state column names not '0', '0', etc
-- replace these with the names of your columns you are inserting into like the others,
-- then place these values that you want to insert in the select list
insert into TableX (IDClient,NewName,IDRole,'0','0','0',Initials,'XXX',GETDATE(),NULL,NULL)
select
(select id from X where nAme=Contacts.Company) as IDClient,
FirstName + right(' '+ cast(LastName as varchar(20)), 20) as NewName,
(select id from Y where newid=8 and description=Contacts.JobTitle) as IDRole,
'0',
'0',
'0',
Initials,
'XXX',
getdate(),
null,
null
from Contacts