SQL-Merge mit Abhängigkeiten

dabue

Neuer Benutzer
Beiträge
1
Hi!

Ich versuche gerade in unserer Datenbank einen Bestandsabgleich von Artikeln durchzuführen.
Dies habe ich per Merge versucht durchzuführen. Leider gibt es einige Besonderheiten die beachtet werden müssen.
Meine ersten Versuche endeten leider im Desaster.

Besonderheiten:

1. Es gibt Artikel mit Bestand. 2. Es gibt Variantenartikel mit entsprechender AusprägungsID und Bestand. 3. Es gibt Stücklistenartikel welche über einen Mutterartikel mit dem Bestand versorgt werden.

Die Lagerbestände für normale Einzelartikel und Variantenartikel stehen in einer Tabelle. Die Werte für Stücklistenartikel stehen in einer anderen Tabelle.

Mein Vorgehen für Stücklistenartikel war nun folgendes:

MERGE [TabelleMitArtikelnZumUpdaten] as EI
USING(SELECT * FROM [QuellTabelle]) as LBS
ON EI.Artikelnummer = LBS.Artikelnummer
AND EI.TecDocInfo = LBS.Shop
AND EI.AuspraegungID = LBS.AuspraegungID
WHEN MATCHED THEN
UPDATE SET
EI.Quantity = LBS.StcklBestand;



Dies sind von mir umfunktionierte Felder welche ich zur Identifizierung genutzt habe. Ich habe entsprechend in beiden Feldern eine 1 eingetragen um diese Matchen zu können EI.TecDocInfo = LBS.Shop

Ein Fehler den ich drin habe, ist meiner Meinung nach die AusprägungsId, da ein Stücklistenartikel keine Variante ist und keine entsprechende ID hat.

Mein Befehl hatte soweit auch funktioniert aber leider wurden immer alle Artikel entsprechend mit einen Bestand versorgt. Dies führte aufgrund der entsprechenden fehlenden Einträge in der einen oder anderen Tabelle, dann aber leider zu einem Bestand von 0.

Gibt es eine Möglichkeit, die Merge Funktion vor dem Ausführen irgendwie als Select zur Sicherheit darzustellen?
 
Werbung:
Gibt es eine Möglichkeit, die Merge Funktion vor dem Ausführen irgendwie als Select zur Sicherheit darzustellen?
Also diese Frage sollte man sich stellen, bevor man ein Update durchführt.

Wo ist jetzt Dein Problem? 2 Tabellen anhand der oben aufgeführten Kriterien zu joinen? Und dazu die Werte und ID auszugeben, die Du mergen würdest?

Deine anderen Fragen, Vermutungen usw. sind hier nicht zu beantworten, da niemand das Datenmodell kennt, Du die Verwendung des Modells über Flags verfälscht hast und es anscheinend auch selbst nicht richtig kennst. Hinzu kommt die abstrakte Darstellung der Tabellennamen, die dem Statement zu einem gewissen Teil die Semantik raubt, aus der man zumindest Vermutungen anstellen könnte. Dass Du die Tabellen umbenennst, hat vielleicht auch etwas damit zu tun, dass das System nicht erkennbar sein soll. Wenn Du also manuell in einem verschleierten System rumfummelst, damit ggF. die Nutzungsbedingungen verletzt o.ä., kann ich nur sagen viel Vergnügen weiterhin. Besser wäre, Du holst Dir professionelle Hilfe, am Besten vom Hersteller des Systems und besorgst Dir die nötigen Schulungen.
 
Zurück
Oben