Zum Inhalt wechseln


Foto

SQL Werte zweier Tabellen vergleichen

MS SQL

  • Bitte melde dich an um zu Antworten
Eine Antwort in diesem Thema

#1 Isii

Isii

    Newbie

  • 3 Beiträge

 

Geschrieben 06. April 2017 - 19:58

Hallo zusammen,
 
ich habe gerade einen Knoten im Kopf und finde nicht den richtigen Ansatz.
 
Ich habe 2 Tabellen in SQL Server 2008 R2, Tabelle A (Operative Daten) speichert Daten aus Tabelle B (Stammdaten) ab.
In Tabelle B ist die Route eines Produktes mit Ort und Zeit hinterlegt. Tabelle A speichert ab und an falsche Daten ab, diese falschen Daten sollen zurückgegeben werden. 
  
Tabelle A
TabelleA.Id, ProduktID, StartZeit,  Ort1,  Endzeit, Ort2
1, 40111, 10:00, A, 14:00, A
2, 40201, 19:00, A, 20:00, C
3, 40201, 19:00, A, 20:30, C

Tabelle B
ProduktID, Ort, Zeit
40111, A, 10:00
40111, B, 11:00
40111, C, 12:00
40111, A, 14:00
40201, A, 19:00
40201, B, 19:30
40201, C, 20:00

40301, A, 20:30

40301, A, 23:30

 

Geprüft werden soll, ob zu einer ProduktID in der Tabelle A die Orte und die Uhrzeiten in der Tabelle B vorhanden sind, einmal für StartOrt+Uhrzeit, danach für EndOrt+Uhrzeit.

Ergebnis des Vergleichs im Beispiel soll die Id 3 der Tabelle A zurückgeben, diese Uhrzeit kommt in Tabelle B bei dem Produkt nicht vor.

 

Da in beiden Tabellen die ProduktID mehrfach vorkommen, komme ich mit einem Vergleich wie NOT IN nicht so recht weiter, da ja die falsche 20:30 bei einem anderen Produkt zu finden ist.

 

Irgendwelche Ratschläge?

 

Vielen Dank und viele Grüße

Isii 


Bearbeitet von Isii, 06. April 2017 - 20:04.


#2 Cybquest

Cybquest

    Expert Member

  • 1.886 Beiträge

 

Geschrieben 07. April 2017 - 11:03

Du könntest Die Tabellen mittels Outer-Join verbinden über ProduktID UND Zeit und dann z.B. den Ort mit ausgeben. Wenn der fehlt, gibt's keinen passenden Datensatz.


My name is Frank, you can say you to me.



Auch mit einem oder mehreren der folgenden Tags versehen: MS SQL