Moin,
brauche mal einen kleinen Anstoss in die richtige Richtung:
Ich habe eine Tabelle Produkte mit knapp 10.000 Artikeln (Artikelnummer, Bezeichnung, Preis, usw.)
Nun bekomme ich ab und an eine Tabelle Neue_Preise von Artikeln deren Preise sich geändert haben. (Artikelnummer, Preis) Artikelnummer ist dabei das Kriterium zur Identifikation in beiden Tabellen.
Wie stelle ich es am geschicktesten an die neuen Preise einzufügen?
Einfach die Spalte drüberkopieren kann unter Umständen gefährlich werden, da manche Artikel aussortiert werden und neue Artikel hinzukommen.
Ich brauche eigentlich soetwas:
- Suche in der Tabelle Produkte die Artikelnummer des xten Datensatz
- Suche in der Tabelle Neue_Preise den Preis der Artikelnummer des xten Datensatzes
- Schreibe den neue Preis in die Tabelle Artikel an die Stelle des xten Datensatzes
- Suche in der Tabelle Produkte die Artikelnummer des x+1ten Datensatz
...
Wie gesagt, ein kleiner Hinweis in die richtige Richtung würde mir helfen
Thanks
Herr_Stromberg
Preislisten aktualisieren
Moderator: Moderatoren
Re: Preislisten aktualisieren
Aloha
Auch wenn mich diese Formulierung
In Deinem Fall so oder so ähnlich:
Auszuführen über Menüpunkt "Extras" -> "SQL".
Auch wenn mich diese Formulierung
doch etwas verwirrt, weil Du einerseits schreibst, dass die Identifikation über die Artikelnummer stattfindet, andererseits nun aber die Artikelnummer erst suchen willst, erfolgt so etwas prinzipiell über ein UPDATE mit Unterabfragen.Herr_Stromberg hat geschrieben:- Suche in der Tabelle Produkte die Artikelnummer des xten Datensatz
In Deinem Fall so oder so ähnlich:
Code: Alles auswählen
UPDATE "Preise"
SET "Preis" = (SELECT "Preis" FROM "Neue_Preise" WHERE "Neue_Preise"."Artikelnummer" = "Preise"."Artikelnummer")
WHERE "Artikelnummer" IN (SELECT "Artikelnummer" FROM "Neue_Preise")
-
- Beiträge: 2
- Registriert: Di, 14.09.2010 10:35
Re: Preislisten aktualisieren
Vielen Dank DPunch,
das war die richtige Richtung. Mit folgender Syntax hats dann geklappt:
Musste als OpenofficeBase-Anfänger natürlich auch erst drauf kommen, dass die Abfrage nicht mit dem normalen Abfrage-Editor funktioniert, sondern mit Menu Extras->SQL (hatte die letzte Zeile im Posting übersehen) und dass, wenn man den SQL-Connector installiert vor dem Neustart Openoffice auch in der Schnellstartleiste beenden muss.
Gruss
Herr_Stromberg
das war die richtige Richtung. Mit folgender Syntax hats dann geklappt:
Code: Alles auswählen
UPDATE Produkte
SET Preis = (SELECT Preis FROM Neue_Preise WHERE Produkte.Artikelnummer = Neue_Preise.Artikelnummer) WHERE Artikelnummer IN (SELECT Artikelnummer FROM Neue_Preise)
Gruss
Herr_Stromberg