Byłbym wdzięczny za twoją pomoc.
Zapewne to dość prosty problem do rozwiązania - ale ja nie jestem jedyny .. ;-)
Mam dwie tabele w SQL Server:
- artykuł
- ceny
Teraz chcę wybrać określony zestaw identyfikatorów i wstawić niektóre wpisy do tabeli cen z tymi identyfikatorami.
np. (błędny i niedziałający SQL)
INSERT INTO prices (group, id, price)
VALUES (7, (select articleId from article WHERE name LIKE 'ABC%'), 1.50);
Błąd SQL -> podzapytanie ma więcej niż 1 wartość
dzięki za pomoc
Odpowiedzi:
Chcesz:
insert into prices (group, id, price) select 7, articleId, 1.50 from article where name like 'ABC%';
gdzie po prostu zakodujesz stałe pola.
źródło
iden_course
(Cse_M_ID,Cse_M_Name
,Cse_M_ShName
,Cse_M_TotSem
, Cse_M_CreatedDate) VALUES ( 'id', 'BJF', 'BJfg', '4', Now ()) wybierz max (Cse_M_ID) jako identyfikator z iden_course Jak dodać w tym zapytaniuSpróbuj tego:
INSERT INTO prices ( group, id, price ) SELECT 7, articleId, 1.50 FROM article WHERE name LIKE 'ABC%';
źródło
INSERT INTO prices (group, id, price) SELECT 7, articleId, 1.50 FROM article WHERE name LIKE 'ABC%'
źródło
Jeśli wstawiasz jeden rekord do swojej tabeli, możesz to zrobić
INSERT INTO yourTable VALUES(value1, value2)
Ale ponieważ chcesz wstawić więcej niż jeden rekord, możesz użyć
SELECT FROM
w instrukcji SQL.więc będziesz chciał to zrobić:
INSERT INTO prices (group, id, price) SELECT 7, articleId, 1.50 from article WHERE name LIKE 'ABC%'
źródło
wygląda zapytanie podrzędne
insert into table_name (col1,col2,....) values (select col1,col2,... FROM table_2 ...)
Mam nadzieję, że to pomoże
źródło
INSERT INTO prices(group, id, price) SELECT 7, articleId, 1.50 FROM article where name like 'ABC%';
źródło