Frage

Ich habe erstellt genannt eine einzelne Tabelle in meiner primären DB tblGlobalIDMapping, die eine GUID für alle Einträge zuweisen und speichern Sie die anderen drei primären IDs über die App für eine einzelne ID-Repository zur Verfügung zu stellen.

Die neue Tabelle ist in der folgenden Struktur ->

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

Die Informationen, die ich brauche, sind in einer Tabelle in einer anderen DB (derselbe Server) mit der folgenden Teilstruktur ->

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

Eine Person (ID # 13579) wird in der zweiten Tabelle 1 dargestellt für jede Anwendung. Die ApplicationID Spalte speichert eine Zahl, 1 für DRIMaster und 6 für DRIClient, die Sie, was in PersonApplicationID die ID # erzählt ist.

Ich brauche ein Bulk-Kopieren / Einfügen aus dieser Tabelle zu meinem neuen Tisch zu tun, aber ich mag nur 1 Zeile Aufzeichnung den 3 Haupt-IDs in der neuen Tabelle.

Das ist, was ich habe so weit, aber diese gibt eine Zeile für jede 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)

Dies gibt die unten ->

PersonID  DRIMaster   DRIClient
_______________________________
108574    71163       NULL
108574    NULL        71163
War es hilfreich?

Lösung

Aggregate ignorieren NULL-Werte, so ....

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top