ile brakuje mi coś powinno być w stanie to zrobić:
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
będzie po prostu użyć składni INSERT INTO...SELECT...FROM..
.
Teraz, jeśli nie masz tabelę, a następnie można SELECT..INTO
nowa tabela temp:
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
Lub jeśli chcesz użyć dołącza do tego wówczas:
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
Teraz oryginał post pokazuje wstawkę:
insert into Table (IDclient,NewName,'',IDRole,Initials,NULL)
Masz dwa pola, które nie mają nazw m, to nie jest poprawna składnia. W instrukcji wstawiania, aby mieć nazwy bez kolumn i wstaw do wszystkich lub nazwij kolumny, do których chcesz wstawić wartości. Nie można używać pustych ciągów ''
lub null
jako nazw kolumn. Jeśli chcesz, aby te wartości w brzmieniu wówczas trzeba podać nazwiska do nich:
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
oparciu o edycję, należy użyć następującego:
-- 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
I'me otrzymuję „Nieprawidłowy składnia w pobliżu '0' ", gdy używam kodu powyżej –
W swoim' INSERT' musisz użyć nazw kolumn, a nie 'getdate()', itd. te wartości idą w wybranej części instrukcji zobacz moje ostatnie zapytanie, którego użyłem. – Taryn