Ich habe eine einzelne Tabelle in meiner primären DB mit dem Namen tblGlobalIDMapping
erstellt, die allen Einträgen eine GUID zuweist und die anderen drei primären IDs in der App speichert, um ein einzelnes ID-Repository bereitzustellen.SQL: Füllen Sie einzelne Zeile (Tabl 1) aus mehreren Zeilen (Tabl 2); Quer DB
Die neue Tabelle wird in der folgenden Struktur ->
AppGlobalID uniqueidentifier NoNulls
PersonID int NoNulls
DRIMaster int Nulls
DRIClient int Nulls
Die Informationen, ich brauche, sind in einer Tabelle in einem anderen DB (derselbe Server) mit der folgenden Teilstruktur ->
PersonID int NoNulls
ApplicationID tinyint NoNulls
PersonApplicationID varchar(14) NoNulls
Eine Person (ID # 13579) ist in der zweiten Tabelle 1 für jede Anwendung dargestellt. Die ApplicationID-Spalte speichert eine Nummer, 1 für DRIMaster und 6 für DRIClient, die Ihnen sagt, was die ID # in PersonApplicationID ist.
Ich muss eine Bulk Copy/Insert aus dieser Tabelle in meine neue Tabelle tun, aber ich möchte nur 1 Zeile die 3 wichtigsten IDs in der neuen Tabelle aufzeichnen.
Dies ist, was ich bisher habe, aber das gibt eine Zeile für jede PersonID zurück.
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
Dies scheint zu funktionieren. Ich bin ein wenig besorgt, dass eine DISTINCT PersonID Abfrage 51241 zurückgibt und diese Abfrage gibt 51233 zurück und ich kann die fehlenden 8 PersonIDs derzeit nicht erklären. –
Sie filtern nach ApplicationId In (1,6). Ist es möglich, dass die 8 fehlenden Personen nicht diese beiden Anwendungs-IDs haben? –
Das war mein ursprünglicher Gedanke, aber die folgende Abfrage -> 'SELECT DISTINCT PersonID VON tblApplicationAssociation WHERE ApplicationID NICHT IN (1,6)' gibt 13253 Datensätze .... Ich bin ratlos! –