Подберите, где критерии условия - PullRequest
0 голосов
/ 08 мая 2018

Работаю над моим первым назначением ETL для класса и нуждаюсь в помощи с запросом вставки для преобразования, в частности, получая authorID для вставки в таблицу Transform. , Мои входящие данные: Входящие данные

Моя таблица преобразования имеет 3 столбца: Book(varchar(50), ISBN(varchar(50), author(int). Правильное значение автора должно быть получено из таблицы автора, которая имеет: id(int), FirstName(varchar(35), LastName(varchar(35).

Что мне нужно для предложения where в sub select?

INSERT INTO TRANSFORM.NewBook
    SELECT 
        nb.book,
        ISBN,
       (SELECT a.id 
           FROM Library.Author AS a
           WHERE nb.Author = ????????? AS Authorid
       FROM [EXTRACT].NewBook AS nb) 

1 Ответ

0 голосов
/ 08 мая 2018

Вам нужно выполнить объединение, чтобы получить данные, которые вы ищете, которые выглядят как имя автора, поэтому я бы попробовал:

INSERT INTO TRANSFORM.NewBook
        SELECT nb.book ,
               nb.ISBN ,
               a.id
        FROM   extract.newbook bn
               JOIN library.author a 
                   ON CONCAT_WS(' ' , a.firstname, a.lastName) = nb.author;

concat_ws для sqlserver 2017. Вы можете попробовать CONCAT(a.firstname, ' ', a.lastName) или старый режим ожидания a.firstname + ' ' + a.lastName = nb.author

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...