Pregunta

He creado una sola tabla en mi base de datos primaria llamada tblGlobalIDMapping que asignará un GUID a todas las entradas y almacenará las otras 3 ID principales en la aplicación para proporcionar un único depósito de ID.

La nueva tabla tiene la siguiente estructura: >

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

La información que necesito está en una tabla en un DB diferente (mismo servidor) con la siguiente estructura parcial: >

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

Una persona (ID # 13579) está representada en la segunda tabla 1 para cada Solicitud. La columna ApplicationID almacena un número, 1 para DRIMaster y 6 para DRIClient, que le indica para qué sirve el ID # en PersonApplicationID.

Necesito hacer una copia / inserción masiva de esa tabla a mi nueva tabla, pero solo quiero que 1 fila registre las 3 ID principales en la nueva tabla.

Esto es lo que tengo hasta ahora, pero devuelve una fila 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)

Esto devuelve el siguiente - >

PersonID  DRIMaster   DRIClient
_______________________________
108574    71163       NULL
108574    NULL        71163
¿Fue útil?

Solución

Los agregados ignoran los nulos, así que ...

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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top