Vergleich und Ergänzung

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

mike6
*****
Beiträge: 479
Registriert: Sa, 06.03.2004 13:58

Vergleich und Ergänzung

Beitrag von mike6 »

Hallo,

ich habe eine Datenbank mit "Tabelle1" und "Tabelle2"

Aus der Tabelle 1 soll der Wert aus der Spalte #BLATT mit der Tabelle 2 in der Spalte R_H
verglichen werden.
Kommt der Wert vor, soll der Rest der Zeile in die Tabelle 1 in die nächste freie Spalte übernommen werden.

z.B. Kommt der Wert (Tabelle1) 257605602 in der Spalte R_H in der (Tabelle2) vor.
*Ja* "0257605602"
Dann übernehme mir die Daten aus der Tabelle 2, die hinter der Übereinstimmung stehen
in die entsprechende Zeile der Tabelle 1 ( hinter die Spalte Jahrgang ).



Wer kann mir bei der Lösung weiterhelfen?

mfg
mike
Benutzeravatar
ulehmann
*
Beiträge: 15
Registriert: Do, 11.12.2008 08:44

Re: Vergleich und Ergänzung

Beitrag von ulehmann »

Code: Alles auswählen

REPLACE INTO 'Tabelle1'
  SELECT (a.?, a.?, .. , b.?, b.?, ...)
  FROM Tabelle1 a LEFT JOIN Tabelle2 b ON (Tabelle1.R_H*1)  = Tabelle2.BLATT
... oder so.
Beachte das die gesamte Datenzeile von der Select Anweisung zurückgegeben werden muss.
mike6
*****
Beiträge: 479
Registriert: Sa, 06.03.2004 13:58

Re: Vergleich und Ergänzung

Beitrag von mike6 »

Hallo,


ich verstehe nur "Bahnhof".
Wie oder wo trage ich das ein?


mfg
mike
Benutzeravatar
ulehmann
*
Beiträge: 15
Registriert: Do, 11.12.2008 08:44

Re: Vergleich und Ergänzung

Beitrag von ulehmann »

zu OOBase:

wechsel auf die 'Abfragen' -Ansicht
klicke auf 'Abfrage in SQL Ansicht erstellen...'

nun zum SQL Befehl:
evtl. mach erstmal nur die 'SELECT' Anweisung um die Daten zu prüfen bevor du deine Tabelle überschreibst.

Code: Alles auswählen

SELECT
    a.*,
    b.*
FROM
    Tabelle1 a LEFT JOIN Tabelle2 b ON (a.R_H*1)  = b.BLATT
- 'a' und 'b' sind nur kurze Bezeichner für deine Tabellen
- LEFT JOIN bedeutet das alle Daten aus der Tabelle1 und nur passende Daten aus der Tabelle 2 im Ergebnis erscheinen,
- mit "(a.R_H*1)" mache ich aus der Zeichenkette eine Zahl damit diese mit dem Wert aus "b.BLATT" verglichen werden kann (ggf. gibt es da auch eine Base Funktion dafür)

Wenn das Ergebnis deinen Vorstellungen entspricht kannst du mit

Code: Alles auswählen

REPLACE INTO Tabelle1
deine Tabelle1 überschreiben. (oder du lässt es als Abfrage um deine Original Daten zu erhalten )
Rechtschreibfehler sind beabsichtigt und unterliegen dem Copyright !
mike6
*****
Beiträge: 479
Registriert: Sa, 06.03.2004 13:58

Re: Vergleich und Ergänzung

Beitrag von mike6 »

Hallo,

danke. Jetzt hab ich`s kapiert.


mfg
mike
Antworten