Tabelleninhalte vergleichen

06/10/2009 - 11:46 von Carsten Ulinski | Report spam
Hallo zusammen,

habe eine verbundene Tabelle, die jede Nacht aktualisiert wird. 3
Spalten: ArtikelNr, Artikel, Lieferant. Was ich nun machen muss ist:
1. prüfen ob neue Artikel inkl. Nummer und Lieferant angelegt wurden
2. umgekehrt, wenn ein Artikeldatensatz gelöscht wurde
3. ich muss auch sicherstellen, dass verànderte Artikelnamen, Nummern
und/oder Lieferanten pro Datensatz identifiziert werden.
Mit einer einzelnen Abfrage wird es wohl nicht gehen, denke ich mir.
Bei 1. und 2. dachte ich an 2 Inkonsistenzabfragen (alle die in A drin
sind und in B nicht). Wie gehe ich mit 3. um?
Vielen Dank im Voraus
Carsten
 

Lesen sie die antworten

#1 Mark Doerbandt
06/10/2009 - 12:21 | Warnen spam
Hallo, Carsten,

Carsten Ulinski:

habe eine verbundene Tabelle, die jede Nacht aktualisiert wird. 3
Spalten: ArtikelNr, Artikel, Lieferant. Was ich nun machen muss ist:
1. prüfen ob neue Artikel inkl. Nummer und Lieferant angelegt wurden
2. umgekehrt, wenn ein Artikeldatensatz gelöscht wurde
3. ich muss auch sicherstellen, dass verànderte Artikelnamen, Nummern
und/oder Lieferanten pro Datensatz identifiziert werden.
Mit einer einzelnen Abfrage wird es wohl nicht gehen, denke ich mir.
Bei 1. und 2. dachte ich an 2 Inkonsistenzabfragen (alle die in A drin
sind und in B nicht). Wie gehe ich mit 3. um?



ja, genau: drei Abfragen. Wenn Du die ID als Kriterium nutzen kannst:

SELECT * FROM Tab1 WHERE ID NOT IN (SELECT ID FROM Tab2)

SELECT * FROM Tab2 WHERE ID NOT IN (SELECT ID FROM Tab1)

- für 3. musst Du wohl oder über ein langes Kriterium bauen

SELECT T1.* FROM Tab1 T1, Tab2 T2 WHERE T1.ID=T2.ID
AND (T1.Feld1<>T2.Feld1 OR T1.Feld2<>T2.Feld2 OR ...)

Gruss - Mark

Ähnliche fragen