Announcement

Collapse
No announcement yet.

2 Tabellen - vergleich und ersetzen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • 2 Tabellen - vergleich und ersetzen

    Hallo zusammen,

    zunächst einmal zur Info: bin recht neu in dem Bereich SQL Datenbanken und Sprache. Aber nun gut, noch kein Meister vom Himmel gefallen!

    Mein Problem:

    Ich habe zwei Tabellen:

    1. Datenbank aus ERP System, mehrere Spalten, unter anderem "Artikelnummer" und "Farbe"

    2. Datensätze in Excel, Spalte "Artikelnummer" und "Farbe neu"

    Aufgabenstellung (sinngemäß):
    Vergleich der Artikelnummer und dann schreibe den Wert aus Tabelle2-Farbe (Excel) neu in Tabelle1-Farbe (ERP) an der entsprechenden Stelle.

    Muss dafür die Excel Tabelle als SQL Tabelle geschrieben werden? bzw. würde das einiges vereinfachen oder geht das auch über eine Schnittstelle? (Lese die Datenbank derzeit mittels ODBC / Firebird.)


    Hintergrund:
    Die Angaben in Tabelle1-Farbe sind falsch oder n. vorhanden, erschweren also Auswertungen nach Farbe sortiert. Da es aber über 15000 Datensätze sind wäre eine manuelle Änderung zu aufwendig.
    Die Chance das zu ändern ist im Frühjahr bei der Umstellung auf ein anderes ERP nicht genutzt worden.

    Danke euch!

    Hoffe es sind soweit alle Infos vorhanden, ansonsten munter weiterfragen! Thx a lot!

    Langer

  • #2
    Hallo Langer,
    SQL Server unterstützt ja auch die Möglichkeit, auf externe Daten mittels einer Verbindungsserver-Verbindung zuzugreifen. Wenn ich mich recht entsinne, geht das dann über einen OLE-DB Provider für ODBC Datenquellen... Auf die Daten sollte man dann vollqualifiziert (Server.Datenbank.Owner.Tabelle) zugreifen können.

    Wenn die Verbindung steht, kann man die Daten aus der ERP Tabelle mittels erweitertem UPDATE aktualisieren, was dann ungefähr so aussieht:

    Code:
    UPDATE ERP_Tabelle SET Tabelle1.Farbe = Tabelle2.FarbeNeu
      FROM ERP_Tabelle AS Tabelle1 
        JOIN Linked_Server...Excel_Tabelle AS Tabelle2
          ON Tabelle1.ArtikelNummer = Tabelle2.ArtikelNummer
      WHERE Tabelle1.Farbe != Tabelle2.FarbeNeu

    Grüße

    Michael

    Comment


    • #3
      Danke dir!

      Fürs Verständnis eines kleinen Neulings:

      Linked_Server bedeutet also die IP mit der Verzeichnisstruktur.

      also der Teil ON ... gibt an, welche Gemeinsamkeit zwischen Tabelle 1 und 2 besteht ergo wo der link besteht?!

      Where: Das != bedeutet ja ungleich. Meint also wenn die werte in beiden Zellen gleich sind macht er nix, ansonsten updated er?!

      Danke und Grüße!

      Comment

      Working...
      X