Angenommen, ich habe zwei Tabellen, A und B, beide mit einer ID-Spalte und einem Fremdschlüssel (Wert).SQL Server: übereinstimmende Datensätze aus 2 Tabellen mit Sortierung
Ich möchte eine ausgewählte Abfrage tun, die nur die passenden Datensätze zurückgibt, nicht solche, die den Zustand der mit den gleichen Daten nicht erfüllen (ID
und Value
Spalten), die ebenfalls von Value
Spalte der Tabelle B. sortiert
Tabelle A
SELECT *
FROM (VALUES
(15, 1),
(16, 2),
(17, 3)
) as t(idMetadata, [Value])
Tabelle B
SELECT *
FROM (VALUES
(185442, 22008, 16, 6 ,2),
(187778, 22269, 16, 6 ,2),
(211260, 24925, 16, 6 ,2),
(251476, 29431, 15, 4 ,1),
(251477, 29431, 16, 5 ,2),
(251478, 29431, 17, 6 ,3)
) as t(idDet, idEnc, idMetadata, OrderValue, [Value])
Die ExPEC ted Ergebnis ist
dies durch eine einzige Abfrage erreicht werden kann? Oder muss ich ein CTE oder Unterabfragen erstellen?
EDIT: Sorry, ich habe vergessen, eine andere Bedingung für die Abfrage zu erwähnen: in Tabelle B sollten die Datensätze die gleiche IDEnc und die OrderValue -Spalte sollte aufeinander folgen, deshalb das erwartete Ergebnis haben auch die gleiche IDEnc und der OrderValue ist 4, 5 & 6.
Welche Bedeutung von OrderValue ist? Warum 5 ist ok für 16 - 5 - 2 (Tabelle B zweite Reihe von unten), aber 6 sollte nicht enthalten 16 - 6 - 2 (Tabelle B oberen drei Reihen). – kurin123
@ kurin123 OrderValue ist ein fortlaufender Wert, der die Reihenfolge angibt, in der die IDEnc-Datensätze in Tabelle B eingefügt wurden. Ich habe die Frage bearbeitet, weil ich vergessen habe, eine andere Bedingung zu erwähnen, und dass die Zeilen für das erwartete Ergebnis dieselbe IDEnc haben sollten und auch der OrderValue sollte fortlaufend sein. Deshalb haben die erwarteten Datensätze 4, 5 & 6 in der Spalte OrderValue IDEnc. – Adrian87
Also, hast du Lösungen aus Antworten versucht? – gofr1