PDA

Vollständige Version anzeigen : Abfrage nach Teilinhalt eines Feldes filtern


don_mosquito
29.04.2011, 15:54
Hallo,

Ich habe folgende Tabellen:

Tab_1
Bestellnummer Lieferant laut System

Tab_2
Materialnummer des Kunden
Beschreibungstext

Ich möchte nun Tab_1 und Tab_2 zusammenführen.
Der Beschreibungstext in Tab_2 enthält:
abcdefg Bestellnummer des Lieferanten abcdefg

Ich habe folgendes gemacht:
Select [Materialnummer des Kunden], [Beschreibungstext]
From [Tab_2]
Where ([Beschreibungstext] Like "*"&[Bestellnummer Lieferant laut System]&"*");

Ergebniss ist:
Materialnummer des Kunden; alle Beschreibungstexte in denen eine Bestellnummer des Lieferanten vorkommt

Wie bekomme ich jetzt raus WELCHE Bestellnummer des Lieferanten er gefunden hat?

Ergebniss soll also sein:
[Materialnummer des Kunden]; [Beschreibungstext]; [Bestellnummer Lieferant laut System]
z.B.:
"12345"; "Firma X Produkt0815 gelb leuchtet im dunkeln"; "Produkt0815"

Mid LEN etc scheint nciht so recht geeignet...
Hat jemand ne Idee?

Danke!

Thomas Möller
29.04.2011, 16:24
Hallo,

Wie bekomme ich jetzt raus WELCHE Bestellnummer des Lieferanten er gefunden hat?

Du kannst das Feld mit der Bestellnummer aus Tab_2 mit in das Select-Statement aufnehmen:

Select Tab_1.[Materialnummer des Kunden],
Tab_1.[Beschreibungstext],
Tab_2.[Bestellnummer Lieferant laut System]
FROM Tab_1, Tab_2
WHERE ([Beschreibungstext] Like "*" & [Bestellnummer Lieferant laut System] & "*");

HTH

Maxel
29.04.2011, 16:54
Hallo,
Der Beschreibungstext in Tab_2 enthält:
abcdefg Bestellnummer des Lieferanten abcdefg
Welchem Schema folgt diese Angabe?

Also:

Ist die erste Angabe vor dem Leerzeichen immer 7-stellig? Falls immer der Bestellnummer ein (und nur ein) Leerzeichen vorausgeht und ein (und nur ein) Leerzeichen folgt, könnte man den String mit Instr und RevInstr auswerten.

don_mosquito
29.04.2011, 17:08
Danke erstmal fuer die Antworten

@ Maxel
Kein Schema, der Beschreibungstext ist chaotisch, die einzige konstante ist, das irgendwo eine Angabe im Format des Inhaltes [Tab_1].[Bestellnummer Lieferant laut System] versteckt ist.

@Thomas
Da die beiden Tabellen nicht verlinkt sind (weil keine uebereinstimmenden Felder), erhalte ich nur eine kalre zuordnung wenn Textfeld zufällig mal 100%= Bestellnummer ist:

"12345"; "Firma X Produkt0815 gelb leuchtet im dunkeln"; " "
"12345"; "Produkt0817"; "Produkt0817"

Thomas Möller
29.04.2011, 17:15
Hallo!

Da die beiden Tabellen nicht verlinkt sind (weil keine uebereinstimmenden Felder), erhalte ich nur eine kalre zuordnung wenn Textfeld zufällig mal 100%= Bestellnummer ist:

Das Beispiel aus Deinem ersten Beitrag hat mit dem von mir geposteten SQL-String funktioniert. Ergebnisse kann es aber natürlich nur geben, wenn die genaue Bestell-Nr. aus Tab_2 im Beschreibungstext aus Tab_1 enthalten ist.

CU

Maxel
29.04.2011, 17:21
Hallo,
Kein Schema
Also auch nicht das mit den Leerzeichen?

Dann poste doch mal 3 Beispielzeilen, die sich krass unterscheiden!

don_mosquito
29.04.2011, 18:00
@ Thomas *hust* ja genau... wie schön wenn man noch ein Leerzeichen in der Bestellnummer findet....

Ich habe allerdings jetzt immer doppelte Einträge einen mit
Text; Bestellnummer "leer"
Text; Bestellnummer

Die lleren habe ich mit Filter Is Not Null entfernt, gibts noch was klügeres?
Distinct hat nicht funktioniert...

Auf jeden Fall danke!!!

Thomas Möller
29.04.2011, 19:34
Hallo!

Ich habe allerdings jetzt immer doppelte Einträge einen mit
Text; Bestellnummer "leer"
Text; Bestellnummer

Die lleren habe ich mit Filter Is Not Null entfernt, gibts noch was klügeres?

Vielleicht kannst Du ein paar Beispieldatensätze liefern, mit denen sich das Problem verdeutlichen lässt.

Dazu könntest Du hier ein paar Zeilen Text mit den Daten schreiben. Alternativ kannst Du auch eine kleine Beispieldatenbank mit entsprechend getuneten Testdaten hochladen. Letzteres würde ich bevorzugen. ;)

CU