Kopiowanie danych z dwóch tabel [MS SQL]

0

Posiadam 3 tabele. Do pierwszej tabeli chciałbym skopiować dane z dwóch pozostałych.
Tabele łączę ze sobą sposobem:

INNER JOIN [ModelDanychContainer].[JednostkiMiarAsortymentow] on KodyKreskowe.JednostkaMiaryAsortymentu_Id=JednostkiMiarAsortymentow.Id
INNER JOIN [ModelDanychContainer].Asortymenty on JednostkiMiarAsortymentow.Asortyment_Id=Asortymenty.Id

A zapytanie przepisujące napisałem tak:

INSERT INTO ModelDanychContainer.KodyKreskowe (Kod, JednostkaMiaryAsortymentu_Id, JednostkaMiaryAsortymentuZKodemPodstawowym_Id)
SELECT Asortymenty.Symbol FROM ModelDanychContainer.Asortymenty
SELECT JednostkiMiarAsortymentow.Id FROM ModelDanychContainer.JednostkiMiarAsortymentow
SELECT JednostkiMiarAsortymentow.Id FROM ModelDanychContainer.JednostkiMiarAsortymentow

Niestety jednak nie działa, podkreśla na czerwono całego INNER JOIN-a oraz zwraca błąd:

The select list for the INSERT statement contains fewer items than the insert list. The number of SELECT values must match the number of INSERT columns.

0

Komunikat mówi jasno, że liczba pól w tabeli nie odpowiada liczbie pól ktore wstawiasz, powinno być coś w ten desen

INSERT INTO ModelDanychContainer.KodyKreskowe (Kod, JednostkaMiaryAsortymentu_Id, JednostkaMiaryAsortymentuZKodemPodstawowym_Id)
SELECT 
--lista poł odpowiadające insertowi
FROM 
     tu joiny z tabel
0

Swoją drogą, nie byłoby Ci wygodniej wykorzystać widok?

0

Przy takim zapytaniu

INSERT INTO ModelDanychContainer.KodyKreskowe (Kod, JednostkaMiaryAsortymentu_Id, JednostkaMiaryAsortymentuZKodemPodstawowym_Id)
SELECT Asortymenty.Symbol,JednostkiMiarAsortymentow.Id,JednostkiMiarAsortymentow.Id 
FROM 
	   
INNER JOIN [ModelDanychContainer].JednostkiMiarAsortymentow on KodyKreskowe.JednostkaMiaryAsortymentu_Id=JednostkiMiarAsortymentow.Id
INNER JOIN [ModelDanychContainer].Asortymenty on JednostkiMiarAsortymentow.Asortyment_Id=Asortymenty.Id

zwraca:

Msg 156, Level 15, State 1, Line 5
Incorrect syntax near the keyword 'INNER'.

@Patryk27 Tzn? Nie znam się na SQL, chcę skopiować te dane obojętnie jak, a że jest tego 30000 rekordów to wole pokombinować niż klepać ręcznie :)

0
SELECT Asortymenty.Symbol,JednostkiMiarAsortymentow.Id,JednostkiMiarAsortymentow.Id 
FROM 
-- brakuje tu nazwy tabeli
INNER JOIN 

Tzn? Nie znam się na SQL

wykorzystaj widok znaczy wykorzystaj widok :-) jeśli nie wiesz, czym są widoki - poczytaj i zdecyduj, czy pasują do Twojego przypadku.

0

To strzelanie w ciemno, bo nie wiem co jak i z czym się łączy, błąd wynika ze zlej składni SQL, to poiwnno być mniej więcej tak

INSERT INTO ModelDanychContainer.KodyKreskowe (Kod, JednostkaMiaryAsortymentu_Id, JednostkaMiaryAsortymentuZKodemPodstawowym_Id)
SELECT 
	Asortymenty.Symbol
	,JednostkiMiarAsortymentow.Id
	,JednostkiMiarAsortymentow.Id 
FROM 
	Asortymenty
	INNER JOIN JednostkiMiarAsortymentow on JednostkiMiarAsortymentow.Asortyment_Id=Asortymenty.Id

SPRAWDŹ zanim dodadasz do tabeli czy sam select zwraca to co chcesz dodać

UPDATE:

Ten join nie jest w sumie potrzebny:

INSERT INTO ModelDanychContainer.KodyKreskowe (Kod, JednostkaMiaryAsortymentu_Id, JednostkaMiaryAsortymentuZKodemPodstawowym_Id)
SELECT 
        Symbol
	,Asortyment_Id
	,Asortyment_Id
FROM 
	Asortymenty

1 użytkowników online, w tym zalogowanych: 0, gości: 1