Pergunta

Eu criei uma única tabela no meu DB primária chamada tblGlobalIDMapping que irá atribuir um GUID a todas as entradas e armazenar os outros 3 primária ID do outro lado da App prever um único repositório ID.

A nova tabela é a seguinte estrutura ->

AppGlobalID     uniqueidentifier     NoNulls
PersonID        int                  NoNulls
DRIMaster       int                  Nulls
DRIClient       int                  Nulls

A necessidade de informação I está em uma tabela em um DB diferente (mesmo servidor) com a estrutura parcial seguinte ->

PersonID                int             NoNulls
ApplicationID           tinyint         NoNulls
PersonApplicationID     varchar(14)     NoNulls

Uma pessoa (ID # 13579) é representada na segunda tabela 1 para cada aplicação. As lojas de coluna ApplicationID um número, 1 para DRIMaster e 6 para DRIClient, que lhe diz o que o ID # em PersonApplicationID é para.

Eu preciso fazer uma cópia em massa / Inserir dessa tabela à minha nova tabela, mas eu quero gravar o 3 ID principal de na nova tabela apenas 1 linha.

Isto é o que eu tenho até agora, mas este Retorna uma linha para cada PersonID.

SELECT PersonID, 
    CASE
        WHEN ApplicationID = 1
        THEN PersonApplicationID
    END AS 'DRIMaster', 
    CASE
        WHEN ApplicationID = 6
        THEN PersonApplicationID
    END AS 'DRIClient'
FROM tblApplicationAssociation
WHERE ApplicationID IN (1,6)

Isso retorna o abaixo ->

PersonID  DRIMaster   DRIClient
_______________________________
108574    71163       NULL
108574    NULL        71163
Foi útil?

Solução

Agregados ignorar valores nulos, então ....

SELECT PersonID, 
       Min(CASE
                WHEN ApplicationID = 1
                THEN PersonApplicationID
        END) AS 'DRIMaster', 
       Min(CASE
                WHEN ApplicationID = 6
                THEN PersonApplicationID
        END) AS 'DRIClient'
FROM tblApplicationAssociation
WHERE ApplicationID IN (1,6)
Group By PersonId
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top