Aktualisierungsabfrage

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Reginald
****
Beiträge: 114
Registriert: Fr, 23.07.2010 23:58

Aktualisierungsabfrage

Beitrag von Reginald »

Hallo zusammen,

mit Access ist das hier ganz einfach, aber wir sind ja hier nicht bei Winzigweich ...

Habe in mysql mit OOBase als Frontend eine Tabelle namens mitarbeiter mit den Feldern mitarbeiterid, vorname, nachname, sprache, bemerkung etc.

Das Sprachenfeld ist fast überall leer.

Ich habe aus Calc eine Tabelle mitarbeitersprachen importiert die diesen Aufbau hat: mitarbeiterid, sprache

Jetzt will ich in der mitarbeiter-Tabelle das Feld "sprache" anhand der anderen Tabelle updaten und gleichzeitig noch ein "X" in das Feld "bemerkung" reinschreiben, so dass ich die upgedateten Datensätze anschließend leicht finden kann.

Wie würde das ganze aussehen, wenn ich nicht die MitarbeterID in der Sprachentabelle hätte sondern mit den Schlüssel aus Vorname und Nachname zusammenbauen müßte, also wenn die Sprachtabelle so aussähe: vorname, nachname, sprache ?

Kann man das auch noch so umbiegen, dass er nur dann updated, wenn das Sprachfeld leer ist, d. h. die Werte aus der original Mitarbeitertabelle haben Vorrang?

Danke schon einmal für die Hilfe!!! 8)

Grüße
Reginald
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Aktualisierungsabfrage

Beitrag von komma4 »

SQL ist ganz einfach (wenn man sich daran gewöhnt hat)

Extras>SQL...

Code: Alles auswählen

UPDATE mitarbeiter SET sprache = mitarbeitersprachen.sprache, bemerkung = "X"  WHERE mitarbeiter.mitarbeiterid = mitarbeitersprachen.mitarbeiterid AND mitarbeiter.sprache IS NULL 
oder

Code: Alles auswählen

UPDATE mitarbeiter SET sprache = mitarbeitersprachen.sprache, bemerkung = "X" WHERE mitarbeiter.vorname = mitarbeitersprachen.vorname AND  = mitarbeiter.nachname = mitarbeitersprachen.nachname AND mitarbeiter.sprache IS NULL 

Kontrolliere, ob die gewünschten Datensätze ausgewählt werden, indem Du Dir vorher eine Abfrage mit den gleichen WHERE Kriterien definierst und diese ausführst.

Code: Alles auswählen

SELECT * FROM mitarbeiter WHERE ... 

Du kannst Dir die Dokumentation für MYSQL auch von deren Webseite herunter laden und lokal nachschlagen 8)
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Antworten