Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Update Feld mit Zuordnungstabelle und Like Operator

Begonnen von silentwolf, Dezember 04, 2018, 15:15:51

⏪ vorheriges - nächstes ⏩

silentwolf

Hallo,
vor einiger Zeit hatte ich schon mal ein ähnliches Problem das ich mit Hilfe einer Zuordnungstabelle lösen konnte.
Dabei habe ich in der tblZuordnung zwei Datenfelder erstellt Bez_Quelle und Bez_Richtig.
In der tbl_Neu hab ich dann das Feld Umsatztext mit Hilfe nachfolgender SQL Anweisung geändert.

UPDATE tbl_Zuordnung INNER JOIN tbl_Neu ON tbl_Zuordnung.Bez_Quelle = tbl_Neu.Umsatztext SET tbl_Neu.Umsatztext = [tbl_Zuordnung].[Bez_richtig];


Nun da ich nicht weiß wie der Text in der Tabelle aussieht und immer variieren kann wollte ich eine Tabelle erstellen die nur ein Feld besitzt mit den "Richtigen" namen. z.B. "Hüber Josef" "Hausmeister Krause" ...
In der Tabelle kann aber das gleichnamige Feld einen Eintrag "Hueber Josef Waging 12" oder "Hausmeister KRAUSE Ref.12" und dergleichen enthalten.
Also mehr Text als gewollt.
Nun geht das mit einen Feld das man die andere Tabelle updated?

Folgendes hab ich versucht aber das funktioniert so noch nicht.

UPDATE tblA INNER JOIN tblB ON tblA.Bezeichnung = tblB.Bezeichnung
SET tblB.Bezeichnung = [tblA].[Bezeichnung]
WHERE tblA.Bezeichnung LIKE tblB.Bezeichnung


Hat hier jemand einen Lösungsvorschlag oder geht das so nicht?

Mfg
Albert






MzKlMu

Hallo,
das geht so nicht. Die beiden Felder stimmen ja nicht überein, der Operator LIKE vergleicht auch nur ganze Inhalte.
Gruß Klaus

silentwolf

Hallo Klaus,
also das geht gar nicht? Oder nur so wie ich das gemacht hätte.. ?
So wie LIKE *Krause* oder so in der Richtung. Ich kann ja nicht hundert verschiedene Arten wie jemand den Namen schreiben könnte in die Zuordnungstabelle schreiben..

Gruß Albert

MzKlMu

Hallo,
wie soll das gehen, wenn es 100erte von Arten gibt ?
Alleine die beiden Beispiele zeigen schon das Problem.
Bei "Hueber Josef Waging 12" sind 12 Zeichen mit Like zu vergleichen und bei "Hausmeister KRAUSE Ref.12" sind es 18.

Es wäre Deine Aufgabe gewesen solchen Namenswildwuchs von vorn herein zu unterbinden.
Für die Namen sollte eine Tabelle geben mit eindeutigen Namen und diese Namen werden per Kombifeld gewählt, andere Namen sind dann gar nicht mehr möglich.
Gruß Klaus

Beaker s.a.

@Klaus
Zitatder Operator LIKE vergleicht auch nur ganze Inhalte.
ich ergänze
Zitatder Operator LIKE ohne Joker vergleicht auch nur ganze Inhalte.

@Albert
Ausserdem hast du durch den JOIN schon nur noch gleiche Werte, und ein LIKE im JOIN akzeptiert die JET nicht.
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

ebs17

Zitatmehr Text als gewollt
Technische Umsetzung:
UPDATE tblA, tblB
SET tblB.Bezeichnung = tblA.Bezeichnung
WHERE tblA.Bezeichnung LIKE tblB.Bezeichnung & '*'


Zitatz.B. "Hüber Josef" ...
einen Eintrag "Hueber Josef Waging 12"
Bei anderen Texten wird das versagen.
Mit freundlichem Glück Auf!

Eberhard

silentwolf

Hallo an alle,
vielen Dank für die Antworten..
Ich werde mir das mal genauer ansehen und dann mich wieder melden!
Heute gehts nicht mehr aber ich werd schaun das ich so bald wie möglich dazu komme.

Vielen Dank erstmal

Ciao