• After a while I have decided to create the lookup functionality in T-SQL. I have achieved this by using left outer joins and returning the same column for each join with a different alias. My code is as follows:

    WITH testCTE (AutoMatchID, TITLE, [FINGERPRINTID], LabelCode, SetCatalogueNumber, ISAN, ReferenceNumber, DSPID,CATALOGUENUMBER,RESOURCEID, [INTERNATIONALSTANDARDRECORDINGCODE],[INTERNATIONALSTANDARDWORKCODE],[EANBARCODE],ParameterSetID ,RECID,[TableID])

    AS

    (

    --- USAGEJOURNALTRANS_ONLINE

    SELECT B.AutoMatchID

    , A.TITLE

    , NULL AS [FINGERPRINTID]

    , NULL AS LabelCode

    , NULL AS SetCatalogueNumber

    , NULL AS ISAN

    , NULL AS ReferenceNumber

    , A.DSPID

    , A.CATALOGUENUMBER

    , A.RESOURCEID

    , A.[INTERNATIONALSTANDARDRECORDINGCODE]

    , A.[INTERNATIONALSTANDARDWORKCODE]

    , A.[EANBARCODE]

    , B.ParameterSetID

    , B.RECID

    , B.[TableID]

    FROM [DAX_ACC].[dbo].[USAGEJOURNALTRANS_ONLINE] A INNER JOIN [AutoMatch].[dbo].[AID] B

    ON A.RECID = B.RECID

    AND B.[TableID] = 102787

    UNION ALL

    --USAGEJOURNALTRANS_CL

    SELECT B.AutoMatchID

    , A.TITLE

    , NULL AS [FINGERPRINTID]

    , NULL AS LabelCode

    , A.SetCatalogueNumber

    , NULL AS ISAN

    , NULL AS ReferenceNumber

    , NULL AS DSPID

    , A.CATALOGUENUMBER

    , NULL AS RESOURCEID

    , NULL AS [INTERNATIONALSTANDARDRECORDINGCODE]

    , NULL AS [INTERNATIONALSTANDARDWORKCODE]

    , NULL AS [EANBARCODE]

    , B.ParameterSetID

    , B.RECID

    , B.[TableID]

    FROM [DAX_ACC].[dbo].[USAGEJOURNALTRANS_CL] A INNER JOIN [AutoMatch].[dbo].[AID] B

    ON A.RECID = B.RECID

    AND B.[TableID] = 102791

    UNION ALL

    --USAGEJOURNALTRANS_FOREIGN

    SELECT B.AutoMatchID

    , A.TITLE

    , NULL AS [FINGERPRINTID]

    , NULL AS LabelCode

    , NULL AS SetCatalogueNumber

    , A.ISAN

    , A.ReferenceNumber

    , NULL AS DSPID

    , A.CATALOGUENUMBER

    , NULL AS RESOURCEID

    , A.[INTERNATIONALSTANDARDRECORDINGCODE]

    , A.[INTERNATIONALSTANDARDWORKCODE]

    , A.[EANBARCODE]

    , B.ParameterSetID

    , B.RECID

    , B.[TableID]

    FROM [DAX_ACC].[dbo].[USAGEJOURNALTRANS_FOREIGN] A INNER JOIN [AutoMatch].[dbo].[AID] B

    ON A.RECID = B.RECID

    AND B.[TableID] = 102793

    UNION ALL

    --USAGEJOURNALTRANS_INDUSTRY

    SELECT B.AutoMatchID

    , A.TITLE

    , NULL AS [FINGERPRINTID]

    , A.LabelCode

    , NULL AS SetCatalogueNumber

    , NULL AS ISAN

    , A.ReferenceNumber

    , NULL AS DSPID

    , A.CATALOGUENUMBER

    , NULL AS RESOURCEID

    , NULL AS [INTERNATIONALSTANDARDRECORDINGCODE]

    , NULL AS [INTERNATIONALSTANDARDWORKCODE]

    , NULL AS [EANBARCODE]

    , B.ParameterSetID

    , B.RECID

    , B.[TableID]

    FROM [DAX_ACC].[dbo].[USAGEJOURNALTRANS_INDUSTRY] A INNER JOIN [AutoMatch].[dbo].[AID] B

    ON A.RECID = B.RECID

    AND B.[TableID] = 102785

    UNION ALL

    --USAGEJOURNALTRANS_LIVEEVENTS

    SELECT B.AutoMatchID

    , A.TITLE

    , A. [FINGERPRINTID]

    , NULL AS LabelCode

    , NULL AS SetCatalogueNumber

    , NULL AS ISAN

    , NULL AS ReferenceNumber

    , NULL AS DSPID

    , NULL AS CATALOGUENUMBER

    , NULL AS RESOURCEID

    , NULL AS [INTERNATIONALSTANDARDRECORDINGCODE]

    , NULL AS [INTERNATIONALSTANDARDWORKCODE]

    , NULL AS [EANBARCODE]

    , B.ParameterSetID

    , B.RECID

    , B.[TableID]

    FROM [DAX_ACC].[dbo].[USAGEJOURNALTRANS_LIVEEVENTS] A INNER JOIN [AutoMatch].[dbo].[AID] B

    ON A.RECID = B.RECID

    AND B.[TableID] = 102783

    UNION ALL

    --USAGEJOURNALTRANS_MEDIA

    SELECT B.AutoMatchID

    , A.TITLE

    , A. [FINGERPRINTID]

    , NULL AS LabelCode

    , NULL AS SetCatalogueNumber

    , NULL AS ISAN

    , NULL AS ReferenceNumber

    , NULL AS DSPID

    , A. CATALOGUENUMBER

    , NULL AS RESOURCEID

    , A. [INTERNATIONALSTANDARDRECORDINGCODE]

    , NULL AS [INTERNATIONALSTANDARDWORKCODE]

    , NULL AS [EANBARCODE]

    , B.ParameterSetID

    , B.RECID

    , B.[TableID]

    FROM [DAX_ACC].[dbo].[USAGEJOURNALTRANS_MEDIA] A INNER JOIN [AutoMatch].[dbo].[AID] B

    ON A.RECID = B.RECID

    AND B.[TableID] = 102781

    )

    (

    SELECT A.*

    , COALESCE(B.[CREATIONID],'') AS F_CreationID

    , COALESCE(C.[CREATIONID],'') AS Ind_CreationID

    , COALESCE(D.[CREATIONID],'') AS ISWC_CreationID

    , COALESCE(E.[CREATIONID],'') AS ISRC_CreationID

    , COALESCE(F.[CREATIONID],'') AS ISAN_CreationID

    , COALESCE(G.[CREATIONID],'') AS EAN_CreationID

    FROM testCTE A

    LEFT OUTER JOIN [ReferenceData].[dbo].[CRALTNUMBERS] B

    ON B.[CRNUMBER] = A.[FINGERPRINTID] AND B.[CRNUMBERTYPEID] = 'fingerprin'

    LEFT OUTER JOIN [ReferenceData].[dbo].[CRALTNUMBERS] C

    ON c.[CRNUMBER] = A.[FINGERPRINTID] AND C.[CRNUMBERTYPEID] = 'Ind Conv'

    LEFT OUTER JOIN [ReferenceData].[dbo].[CRALTNUMBERS] D

    ON D.[CRNUMBER] = A.[INTERNATIONALSTANDARDWORKCODE] AND D.[CRNUMBERTYPEID] = 'ISWC'

    LEFT OUTER JOIN [ReferenceData].[dbo].[CRALTNUMBERS] E

    ON E.[CRNUMBER] = A.[INTERNATIONALSTANDARDRECORDINGCODE] AND E.[CRNUMBERTYPEID] = 'ISRC'

    LEFT OUTER JOIN [ReferenceData].[dbo].[CRALTNUMBERS] F

    ON F.[CRNUMBER] = A.[ISAN] AND F.[CRNUMBERTYPEID] = 'ISAN'

    LEFT OUTER JOIN [ReferenceData].[dbo].[CRALTNUMBERS] G

    ON G.[CRNUMBER] = A.[EANBARCODE] AND G.[CRNUMBERTYPEID] = 'EAN'

    )

    I would like to run the data through script component and loop through the _CreationID columns per row which are not null or blank and check that the column values are the same. However I am struggling to write the vb code int the script editor. I think the process should be

    loop through columns whose names contain _creationID and are not blank/null

    load values into an array

    check if all elements in array are have the same value

    if the elements have the same value create new output column with value 'matched'

    if the elements are not matched create new output column with value 'non_matched'

    My code thus far is:

    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)

    Dim rowType As Type = Row.GetType()

    Dim columnValue As PropertyInfo

    Dim previousRow As String

    For Each columnValue In Row.GetType().GetProperties()

    If (columnValue.Name.EndsWith("_CreationID") And columnValue.GetValue(Row, Nothing).ToString() = "") Then

    Columnval = columnValue.GetValue(Row, Nothing).ToString()

    End If

    Next

    '

    End Sub

    End Class

    Any ideas?