Tschuckerich 10 Geschrieben 19. Juli 2021 Melden Teilen Geschrieben 19. Juli 2021 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 Zitieren Link zu diesem Kommentar
NilsK 2.932 Geschrieben 19. Juli 2021 Melden Teilen Geschrieben 19. Juli 2021 Moin, das ist sicher alles machbar, aber du müsstest noch mal genau beschreiben, was in der Tabelle "Artikel" landen soll. Gruß, Nils Zitieren Link zu diesem Kommentar
Tschuckerich 10 Geschrieben 19. Juli 2021 Autor Melden Teilen Geschrieben 19. Juli 2021 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?! Zitieren Link zu diesem Kommentar
MDD 12 Geschrieben 19. Juli 2021 Melden Teilen Geschrieben 19. Juli 2021 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 Zitieren Link zu diesem Kommentar
Tschuckerich 10 Geschrieben 19. Juli 2021 Autor Melden Teilen Geschrieben 19. Juli 2021 Hi MDD, ich bin leider nicht ganz so gut in SQL. Kannst du das weiter beschreiben? Oliver Zitieren Link zu diesem Kommentar
NilsK 2.932 Geschrieben 19. Juli 2021 Melden Teilen Geschrieben 19. Juli 2021 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 1 Zitieren Link zu diesem Kommentar
Tschuckerich 10 Geschrieben 19. Juli 2021 Autor Melden Teilen Geschrieben 19. Juli 2021 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 Zitieren Link zu diesem Kommentar
Beste Lösung Dukel 454 Geschrieben 19. Juli 2021 Beste Lösung Melden Teilen Geschrieben 19. Juli 2021 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 Zitieren Link zu diesem Kommentar
Tschuckerich 10 Geschrieben 20. Juli 2021 Autor Melden Teilen Geschrieben 20. Juli 2021 Guten Morgen, danke für all eure Tipps. Ich schaue mir das nacheinander an. Kann mir den jemand in irgendeiner Form noch detaillierter weiterhelfen? Zitieren Link zu diesem Kommentar
NilsK 2.932 Geschrieben 20. Juli 2021 Melden Teilen Geschrieben 20. Juli 2021 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 Zitieren Link zu diesem Kommentar
Tschuckerich 10 Geschrieben 20. Juli 2021 Autor Melden Teilen Geschrieben 20. Juli 2021 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`? Zitieren Link zu diesem Kommentar
NilsK 2.932 Geschrieben 20. Juli 2021 Melden Teilen Geschrieben 20. Juli 2021 (bearbeitet) 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 bearbeitet 20. Juli 2021 von NilsK Zitieren Link zu diesem Kommentar
Tschuckerich 10 Geschrieben 20. Juli 2021 Autor Melden Teilen Geschrieben 20. Juli 2021 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 Zitieren Link zu diesem Kommentar
Tschuckerich 10 Geschrieben 20. Juli 2021 Autor Melden Teilen Geschrieben 20. Juli 2021 Kurze Rückmeldung meinerseits. Ich denke der SSIS ist der richtige Weg. Ein erster Test war erfolgreich. Zitieren Link zu diesem Kommentar
NilsK 2.932 Geschrieben 20. Juli 2021 Melden Teilen Geschrieben 20. Juli 2021 Moin, prima, danke für die Rückmeldung. Dann wäre die Markierung "Beste Lösung" aber bei dem Beitrag von Dukel richtig angebracht. Gruß, Nils Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.