In SQL Server 2005 habe ich eine Tabelle mit Bestelldetails mit einer Bestell-ID und einer Produkt-ID. Ich möchte eine SQL-Anweisung schreiben, die alle Bestellungen findet, die alle Artikel in einer bestimmten Reihenfolge haben. Also, wenn Auftrag 5 die Positionen 1, 2 und 3 hat, möchte ich alle anderen Aufträge, die auch 1, 2 und 3 haben. Auch wenn Auftrag 5 zweimal 2 und 3 einmal hatte, würde ich alle anderen Aufträge mit wollen zwei 2er und ein 3er.SQL-Anweisung zum Auswählen einer Gruppe, die alle Werte enthält
Meine Präferenz ist, dass es Bestellungen zurückgibt, die genau übereinstimmen, aber Bestellungen, die ein Supersatz sind, sind akzeptabel, wenn das viel einfacher ist/viel besser funktioniert.
habe ich versucht, ein Self-Join wie folgt aus, aber das fand Aufträge mit jeder der Elemente statt alle der Elemente.
SELECT * FROM Order O1
JOIN Order O2 ON (O1.ProductId = O2.ProductId)
WHERE O2.OrderId = 5
Dies gab mir auch Duplikate, wenn Auftrag 5 das gleiche Element zweimal enthielt.
Wenn die Person ein Vielfaches von Artikel # 1 bestellt, dann wäre es in den Bestelldetails als mehrere Zeilen korrekt. Es gibt keine Spalte "Menge"? –
Korrekt - keine Quantitätsspalte –