处理我的第一个类的ETL分配,并需要有关转换的插入查询的帮助,特别是将authorID插入到Transform表中。 。我的传入数据是:Incoming data
我的转化表有3列,Book(varchar(50)
,ISBN(varchar(50)
,author(int)
。
正确的作者值需要来自作者表,该表具有:
id(int)
,FirstName(varchar(35)
,LastName(varchar(35)
。
子选择中的where子句需要什么?
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)
答案 0 :(得分:0)
你需要做一个连接来获取你所追求的数据,这看起来是作者的名字,所以我试试:
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
的旧备用