ChrisM@Work (1/30/2015)
Try this:
CREATE TABLE #tbl_TMIS_DATASET (
[BL_ID] [decimal](10, 0) NOT NULL,
[VESSEL] [nvarchar](10) NULL,
[VOYAGE] [nvarchar](12) NULL,
[LEG] [nchar](3) NULL,
)
INSERT INTO #tbl_TMIS_DATASET
VALUES('19516116','HJAMRC','0010E','E')
CREATE TABLE #MG_BL_ITINERARY(
[BL_ID] [numeric](10, 0) NULL,
[LEG_SEQ_NBR] [numeric](3, 0) NULL,
[VESSEL_CD] [varchar](10) NULL,
[VOYAGE_CD] [varchar](12) NULL,
[LEG_CD] [char](1) NULL,
)
INSERT INTO #MG_BL_ITINERARY
VALUES('19516116','2','HJAMRC','0010E','E')
INSERT INTO #MG_BL_ITINERARY
VALUES('19516116','1','ROBERT','3814S','S')
INSERT INTO #MG_BL_ITINERARY
VALUES('19516116','3','YMUNCN','08E','E')
INSERT INTO #MG_BL_ITINERARY
VALUES('19516116','4','JTWR','002S','S')
SELECT
t.[BL_ID], t.[VESSEL], t.[VOYAGE], t.[LEG],
i.LEG_SEQ_NBR,
x.*
FROM #tbl_TMIS_DATASET t
INNER JOIN #MG_BL_ITINERARY i
ON t.BL_ID = i.BL_ID
AND t.VESSEL = i.VESSEL_CD
AND t.VOYAGE = i.VOYAGE_CD
AND t.LEG = i.LEG_CD
OUTER APPLY (
SELECT VESSEL_CD, VOYAGE_CD, LEG_CD
FROM #MG_BL_ITINERARY i2
WHERE i2.BL_ID = t.BL_ID
AND LEG_SEQ_NBR = i.LEG_SEQ_NBR + 1
) x
Thanks very much (again !) for your prompt solution. It worked perfectly !! You saved my day once again.