Sorry If I confuse you. Yes, first I said my source is SQL and yes the original source is my .txt. I thought it is easy for me to load the data into STG and do SQL to parse that data. Anyway, Below is the "While Loop" that I am using to parse the data.
I couldn't figure it out how can I pull One Batch (One Bath start from source_id = '21' to Next source_id = '21') then I can parse the field one by one and load into my destination tables.
Jon, I am sure now I didn't confuse you more.
DECLARE @loopA_id INT ,
@loopA_times INT ,
@Address VARCHAR(50),
@CITY VARCHAR(20),
@iNVOICE VARCHAR(200),
@Sta_id VARCHAR(20);
SET @loopA_id = 1;
SET @loopA_times = 0;
-- Create Loop Tables
IF OBJECT_ID('tempdb..#ExactMatch') IS NOT NULL
BEGIN
DROP TABLE #ExactMatch;
END;
CREATE TABLE #ExactMatch
(
codA_id INT IDENTITY(1, 1) NOT NULL PRIMARY KEY ,
sta_id VARCHAR(20),
);
-- Load Loop Table
INSERT INTO #ExactMatch
(
sta_id
)
SELECT DISTINCT
sta_id
FROM SourceTable_EIVA
WHERE source_id = '21'
-- Set Loop Times Variable
SET @loopA_times = @@rowcount;
WHILE @loopA_id <= @loopA_times
BEGIN
SELECT
@Address = e.Address1
,@CITY = e.City
,@iNVOICE = (
SELECT Invoice_Detail FROM SourceTable_EIVA e WHERE e.source_id = '31' --s.sta_id
--OR source_id = '31'
)
,@Sta_id = s.sta_id
FROM #ExactMatch s
INNER JOIN SourceTable_EIVA e ON e.sta_id = s.sta_id
WHERE codA_id = @loopA_id;
INSERT INTO DestinationTable_A_Eivav (Invoice#,Address1,City,Sta_id)
VALUES (@iNVOICE,@Address,@CITY,@Sta_id)
SET @loopA_id = @loopA_id + 1;
END;