none
Nur geänderte Datensätze anzeigen durch Vergleich zweier Tabellen RRS feed

  • Frage

  • Hallo,

    ich habe auf einem MS SQL Server 2008 R2 Standard eine Datenbank mit 2 Tabellen, die einen unterschiedlichen Stand von Artikeldatensätzen beinhalten:

    • Tabelle neu: enthält Artikeldaten mit vielen Spalten von heute, z.B. ID = 1, Bezeichnung = ArtikelXY, Preis = 1,50
    • Tabelle alt: enthält Artikeldaten mit vielen Spalten von gestern, z.B. ID = 1, Bezeichnung = ArtikelXY, Preis = 1,70

    Jetzt möchte ich über eine SQL Abfrage alle Artikel mit gleicher ID vergleichen und u.a. feststellen, ob sich die beiden Datensätze in irgendeiner Spalte unterschieden.

    • Wenn die beiden Datensätze mit gleicher ID vollständig identisch sind (auch gleiche Preise im Gegensatz zum Beispiel), interessiert mich der Datensatz nicht.
    • Wenn sich die beiden Datensätze mit gleicher ID  in irgendeiner Spalte unterscheiden (im Beispiel beim Preis, möchte ich den kompletten Datensatz entweder irgendwie kennzeichnen oder in einer dritten Tabelle ablegen.
    • Sonderfall: Wenn in Tabelle neu ein Datensatz mit einer ID enthalten ist, die nicht in Tabelle alt enthalten ist, möchte ich den kompletten Datensatz auch entweder irgendwie kennzeichnen oder in einer dritten Tabelle ablegen.

    Hintergrund ist, dass ich auf einer Informix Datenbank in einer Tabelle Artikel-Datensätze vorliegen, die sich regelmäßig ändern, wo es aber keine Änderungshistorie gibt. Nun sollen aber auf täglicher Basis nur die Artikel mit allen spalten an eine externe Anwendung als csv-Datei geschickt werden, die sich in irgendeiner Spalte geändert haben. Auf der Informix Datenbank kann und darf ich nicht arbeiten. Deshalb sollen die Daten auf dem MS SQL Server 2008 R2 bearbeitet und aufbereitet werden.

    Kann mir jemand einen Hinweis geben, wie ich nur geänderte Datensätze durch Vergleich zweier Tabellen erkennen kann? Gibt es hierfür eine elegante Lösung oder muss ich für jeden Datensatz aus Tabelle neu in Tabelle alt suchen und dann alle Spalten nacheinander miteinander vergleichen?

    Gruß

    Mika

    Dienstag, 19. November 2013 11:27

Antworten

Alle Antworten