Witam serdecznie,
Zwracam się z uprzejmą prośbą o pomoc w poniższej kwestii. Otóż potrzebuję skopiować dane z jednej tabeli do drugiej (w obrębie różnych bazach). Kolumny w tabelach mają inny rozkład i nazwy.
Główny problem przy kopiowaniu jest taki, że Tabela pierwsza ma klucz tabeli założony na innych polach. Chodzi o to że TABELA1.ŻRÓDŁO ma kilka kolumn:
ID – unikalny generowany automatycznie
Ulica, Miasto, kod pocztowy itp
NAZWA_PROJEKTU – pczyczyna problemów
data projektu
TABELA2.CEL ma również takie pola, tylko mniejszą liczbę i w innym rozkładzie. Problemem jest kolumna NAZWA_PROJEKTU, który w tej tabeli docelowej (w tabeli docelowej nazywa się BAZACEL.dbo.TABELACEL.ProID) jest ustawiony jako klucz, który musi być unikalny
Problem polega na tym, że nie jestem w stanie wprost skopiować danych gdyż w TABELA1.ŹRÓDŁO nazwy projektów często nie były uzupełniane, albo były. Nie jest to dramat, jestem w stanie żyć bez tych danych w nowej tabeli.
Próbowałem stworzyć zapytanie które niestety nie do końca chce kopiować dane bez zduplikowanych wartości…
BAZAŹRÓDŁO.dbo.TABELAŹRÓDŁO .NAZWA_PROJEKTU --> BAZACEL.dbo.TABELACEL.ProID
INSERT INTO BAZACEL.dbo.TABELACEL (PName, PKStreet, PKZip, PKCity, ProID, ProDta)
SELECT ProName, ProKStreet, ProKZip, ProKCity, NAZWA_PROJEKTU,DATA_PROJEKTU
FROM [BAZAŹRÓDŁO].[dbo].[TABELAŹRÓDŁO]
WHERE [BAZAŹRÓDŁO].[dbo].[TABELAŹRÓDŁO].[NAZWA_PROJEKTU] NOT IN
(SELECT NAZWA_PROJEKTU
FROM [BAZAŹRÓDŁO].[dbo].[TABELAŹRÓDŁO] WHERE [BAZAŹRÓDŁO].[dbo].[TABELAŹRÓDŁO].[DATA_PROJEKTU] > '2017-01-01'
GROUP BY [BAZAŹRÓDŁO].[dbo].[TABELAŹRÓDŁO].[NAZWA_PROJEKTU]
HAVING (COUNT(*) > 1)
)
Zapytanie przechodzi ale kopiuje 0 wierszy ;) Sam zagnieżdżony select prawidłowo listuje nazwy projektów które są zduplikowane
W przyszłości chciałbym dorobić jakieś zadanie które cyklicznie będzie kopiować nowe projekty, oczywiście pomijając te już skopiowane, ale nad tym się jeszcze nie zastanawiałem.
Byłbym wdzięczny za pomoc ewentualnie jakąś podpowiedź