SELECT
PartList.cprj,
PartList.PartNumber,
PartList.SWITEM,
PartList.QTY,
ItemMaster.dsca,
ItemMaster.item
FROM
SSIS.dbo.SWBOM as PartList
INNER JOIN
ItemMasterRoutingPOC.dbo.[Item Master Data] AS ItemMaster ON ItemMaster.item = PartList.PartNumber
UNION ALL
SELECT
PartList.cprj,
PartList.PartNumber,
PartList.SWITEM,
PartList.QTY,
ItemMaster.dsca,
ItemMaster.item
FROM
SWBOM PartList
THIS SHOULD CHANGE BASED ON YOUR PART NUMBER SEQUENCE
INNER JOIN
ItemMasterRoutingPOC.dbo.[Item Master Data] AS ItemMaster ON ItemMaster.item =
(CASE WHEN (ItemMaster.item=LEFT(ItemMaster.item,8) + '-XX') AND (ItemMaster.item=LEFT(ItemMaster.item,8) + '-X')
THEN (LEFT(PartList.PartNumber,8) + '-XX')
ELSE
(LEFT(PartList.PartNumber,8) + '-X')
END)
LEFT JOIN
( SELECT
PartList.PartNumber as FoundPartNumber
FROM
SWBOM PartList
INNER JOIN
ItemMasterRoutingPOC.dbo.[Item Master Data] AS ItemMaster ON ItemMaster.item = PartList.PartNumber
) IT ON IT.FoundPartNumber = PartList.PartNumber
WHERE
IT.FoundPartNumber IS NULL
Я новичок в этом программировании. У меня есть 2 таблицы в двух разных базах данных. В одной таблице у меня есть столбец PartNumber, который содержит много чисел, на которые я хочу сделать перекрестную ссылку в другой таблице в другой базе данных. Поэтому для каждой записи в столбце PartNumber (циклически проходя по ним) я хочу сопоставить столбец PartNumber во 2-й базе данных. Возможно, они не должны быть точными совпадениями, или я могу найти первые 8 символов. Поэтому для каждого поиска PartNumber я бы хотел, чтобы ВСЕ строки из второй таблицы были вставлены в третью таблицу, которая будет находиться в той же базе данных, что и первая таблица.
Я пытался написать некоторый код, но с моими ограниченными знаниями сейчас очень успешно. Код таков:
IF OBJECT_ID('FFGD.dbo.BAANExport') IS NOT NULL
DROP TABLE FFGD.dbo.BAANExport
GO
CREATE TABLE FFGD.dbo.BAANExport
(
ITEM VARCHAR(512),
PartNumber VARCHAR(512),
QTY VARCHAR(512),
dsca VARCHAR(512),
Level VARCHAR(512),
trid VARCHAR(512),
cprj VARCHAR(512),
mitm VARCHAR(512),
pono VARCHAR(512),
sitm VARCHAR(512),
opol VARCHAR(512),
qana VARCHAR(512),
scpf VARCHAR(512),
cwar VARCHAR(512),
opno VARCHAR(512),
cpha VARCHAR(512),
exin VARCHAR(512),
itlu VARCHAR(512),
ssta VARCHAR(512),
)
GO
DECLARE PartNumber_cursor CURSOR FOR
SELECT PartNumber
FROM FFGD.dbo.ImportCSV;
OPEN PartNumber_cursor;
FETCH NEXT FROM PartNumber_cursor;
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM PartNumber_cursor;
Insert into FFGD.dbo.BAANExport
Select * from BAANItems.dbo.ItemMaster, FFGD.dbo.ImportCSV
where BAANItems.dbo.ItemMaster.PartNumber = BAANItems.dbo.ItemMaster.PartNumber
END;
CLOSE PartNumber_cursor;
DEALLOCATE PartNumber_cursor;
GO
BAANEXport - третья таблица для записи. ImportCSV - это первая таблица, содержащая номера деталей, которые я хочу найти во второй таблице. ItemMaster - вторая таблица, содержащая строки, которые я хочу извлечь.
Я не пытался выполнить попытку поиска с не точным соответствием. Я пытался получить какой-то точный вывод в это время.