Jump to content

Daten aus Excel in 2 SQL Server Tabellen importieren


Go to solution Solved by Dukel,

Recommended Posts

Hallo Zusammen, 

 

seit langer Zeit bräuchte ich mal wieder Hilfe von euch. 

Ich bekomme in regelmäßigen Abständen eine Exceltabelle mit aktuellen Artikeln. Diese Tabelle entspricht allen lieferbaren Artikelvarianten. 

Ist es möglich auf Basis dieser Tabelle die Daten in 2 SQL Datenbanktabellen zu importieren?

 

1. Artikelvarianten

Der noch einfachste Part ist der Import in die Tabelle "Artikelvarianten" weil sie im großen und ganze den Aufbau der Excel Datei wiederspiegelt. 

Keyfeld: = [Material]

Diesen Import bekomme ich über eine gespeicherte Prozedur mit Hilfe von Powerautomate Desktop hin. 

 

2. Artikel

Der schwierige Teil ist aber die Daten zusätzlich als Artikeldatensatz in die Tabelle "Artikel" zu importieren. 

Keyfeld: = [Artikelnummer]

 

Ich bin leider noch nicht so firm in SQL, arbeite mich aber gerade in das Thema ein. 

Kann mir hier jemand helfen?

 

Da ich die Daten regelmäßig einlesen möchte, muss in dem SQL Statement auch die Prüfung enthalten sein, ob sich Felder von bereits in der Datenbank befindlichen Datensätzen geändert haben.  

 

Würde mich über Hilfe wirklich sehr freuen. 

 

Viele Grüße

Oliver

 

Artikelübergabe.xlsx

Link to post

Hi Nils, 
danke für die Antwort. Mir würde exemplarisch der Weg mit den Felder

- Artikelnummer 

- Materialkurztext 

 

reichen. 

 

Ich habe mit einem anderen Test versucht es über eine View zu lösen. Das Ergebnis würde schon gut aussehen, aber macht man das so in der Praxis?!

 

 

view.JPG

Link to post

Hallo Oliver

also für den Zugriff würde ich mit dem Stichwort:

"openrowset" auf den Weg gehen

 

Für das Prüfen hilft dir womöglich "MERGE" weiter. 

 

Gruß MDD

Link to post

Moin,

 

vielleicht sollten wir doch zwischendurch mal darüber reden, was du denn eigentlich erreichen willst, bevor wir hier weiter wild mit Vorschlägen und Begriffen um uns werfen. Was ist das eigentliche Problem, das du zu lösen versuchst?

 

Gruß, Nils

 

  • Like 1
Link to post

Hi Nils, 
Ziel soll sein, eine Artikeltabelle und eine dazugehörige Artikelvariantentabelle zu bekommen. 

Grundlage für diese beiden Tabellen ist die im ersten Post angehängte Mustertabelle, die ich 1x Wöchentlich vom Lieferanten bekomme. 

Diese Exceldatei enthält aber in nur die Artikelvarianten. 

 

Ich brauche die Daten zum aufbereiten für unsere Branchensoftware. 

 

In Access habe ich dazu mal ein Beispiel aufgebaut, wie es ausschauen soll.  (siehe Anlage)

Hätte die Daten aber gerne in einer MS SQL Datenbank. 

 

Viele Grüße

Oliver

 

Anhang: 

Zeile 1  = hier ist der Artikel 

Folgezeilen = Artikelvarianten

 

 

artikel_artikelvarianten.jpg

Link to post

Moin,

 

du hast nicht das Ziel beschrieben, sondern dein mutmaßliches Werkzeug dafür. Wozu brauchst du die Tabellen im SQL Server? Was soll damit geschehen, wie verwendest du die Daten dort? Warum reicht die Excel-Tabelle nicht?

 

Du schreibst ferner davon, dass die Excel-Tabelle regelmäßig aktualisiert wird - was steckt dahinter? Könnte man stattdessen nicht gleich die Daten im SQL Server aktualisieren? Oder vielleicht gleich die Originaldaten verwenden?

 

Hast du einen Weg, die Excel-Tabelle als solche in den SQL Server zu bekommen und könntest die Daten von dort aus weiterverarbeiten und "verteilen"? Wie hoch muss oder soll der Automatisierungsgrad sein? Reichen manuelle Schritte, brauchst du am Ende ein Programm, das den Import regelmäßig macht?

 

Fragen über Fragen, wie du merkst. Wir können jetzt Annahmen treffen und dir -zig unpassende Lösungswege vorschlagen ... daher wäre es passender, wenn wir wüssten, was das denn am Ende werden soll.

 

Gruß, Nils

 

Link to post

Moin Nils, 

 

ja das hast du natürlich Recht. Ich versuche es noch genauer zu beschreiben. 

Konkret geht es darum eine Mastertabelle für Fenstersysteme aufzubauen. 

 

In diese Mastertabelle möchte ich die Daten von verschiedenen Herstellern (aktuell 2) integrieren. Die Daten der beiden aktuellen Hersteller

bekomme ich immer im gleichen Format (Excel) und die Daten sind auch immer gleich aufgebaut. 

Darum der Workflow für den Import. 

 

Wir haben es so vor, das ich in regelmäßigen Abständen ein aktuelle Excelliste mit den Artikeln bekomme. 

Alle Daten welche in der Excel Liste vorhanden sind, werden vom Hersteller aus seinem SAP gezogen und spiegeln den Artikelbestand wieder. 

 

So, was will ich nun mit den Daten im SQL Server. 

1. Bringe ich die Daten aller Hersteller in ein einheitliches Format.

2. Kann ich jetzt mit den standardisierten Daten arbeiten, d. h. ich bereite diese auf, so dass sie den Fensterbauern für ihre Fensterbausoftware zur Verfügung stehen. 

 

In diesem ersten Schritt möchte ich (darum dieser Forumbeteitrag) die Daten auf 2 Tabellen verteilen. 

 

Ich hoffe das es jetzt etwas besser verständlich ist und es hilft weiter`?

 

Link to post

Moin,

 

dann würde ich folgenden Ansatz empfehlen:

  • Import in zwei Schritten getrennt nach Artikeln und Artikelvarianten
  • Dazu die Ausgangsdaten in Excel passend filtern - einmal nur die Artikeldaten, die du brauchst, das zweite Mal die Varianten
    • noch effizienter wäre es natürlich, wenn du die Daten schon so bekommen würdest
  • Und dann mit einem geeigneten Mechanismus in den SQL Server bringen
    • je nachdem, wie viele Daten es sind und was damit in der Datenbank noch so geschieht, könnte man
      • die Tabellen jedes Mal löschen und neu importieren
      • nur neue Daten importieren
      • neue Daten importieren und vorhandene aktualisieren
      • neue Daten importieren und vorhandene regelbasiert aktualisieren
    • was ein geeigneter Mechanismus ist, wäre anhand der Auswahl zu identifizieren

Du siehst also auch hier, dass die Tücke im Detail steckt und man ohne Kenntnis des Zusammenhangs keine Methode empfehlen kann. Ein scheinbar simpler Task wie ein "Import" entpuppt sich oft als hochkomplexe Angelegenheit.

 

Gruß, Nils

 

Edited by NilsK
Link to post

Ok, danke dir. 

 

Der geeignete Mechanismus ist 

- neue Daten importieren und vorhandene aktualisieren. 

 

Ich schau mir dem Tipp von Dukel mal an:
 

Für solch eine Aufgabe gibt es beim SQL Server die Integration Services:

https://docs.microsoft.com/en-us/sql/integration-services/load-data-to-from-excel-with-ssis?view=sql-server-ver15

 

War der Hoffnung, dass es einfacher ist ;-)

 

Viele Grüße

Oliver

 

Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...