Problem beim Verknüpfen von Tabellen

Tammy

Neuer Benutzer
Beiträge
2
Hallo zusammen,

ich sitze schon eine Weile an einer SQL Abfrage und nun würde ich gerne um euren Rat bitten.

Ich habe 3 Tabellen, die ich verknüpfen müsste, nachfolgend mal eine abgespeckte Ansicht:

upload_2018-9-14_13-36-8.png

Ich habe es mal nur mit 2 Tabellen versucht, doch leider bekomme ich x anstatt 1 Zeile im Ergebnis, also genau so viele Zeilen, wie in der Tabelle 2 auch stehen, auch wenn ich wie unten die WE_NR fix vorgebe.
SQL:

select Tabelle1.Satzart, Tabelle2.Benutzer
from Tabelle1
INNER JOIN Tabelle2 ON Tabelle1.TELEGRAMM LIKE '%00000000181%'
WHERE Tabelle1.TELEGRAMM LIKE '%ERLEDIGT%' AND Tabelle1.SATZART='WESTAT‘

Normal sollte die WE_NR flexibel sein:
select Tabelle1.Satzart, Tabelle2.Benutzer
from Tabelle1
INNER JOIN Tabelle2 ON Tabelle1.TELEGRAMM LIKE '%Tabelle2.WE_NR%'
WHERE Tabelle1.TELEGRAMM LIKE '%ERLEDIGT%' AND Tabelle1.SATZART='WESTAT‘

Kann mir jemand weiterhelfen?

Gruß
Tammy
 
Werbung:
was soll denn für dein abgespecktes Beispiel rauskommen? Ich sehe erst mal nur eine offensichtliche Verbindung von Tabelle 2 und 3 via Bestellnummer.
Deine Tabelle 1 scheint nicht normalisiert zu sein ...
 
Ah entschuldige bitte.
In Tabelle 1 steht der Wert im Feld Telegramm.
Im Feld Telegram steht die WE_NR
Deshalb habe ich im SQL stehen Tavelle1.Telegramm LIKE 'Tabelle2.WE_NR%'
 
Werbung:
wenn Du schon so ein vergurktes Design hast (ich an Deiner Stelle würde es umweltgerecht in /dev/null entsorgen), dann solltest Du zum Zwecke des joinens den String da wenigstens auseinanderkloppen:

Code:
test=*# select * from tabelle1;
 satzart | status |        telegramm        
---------+--------+--------------------------
 WESTART |     10 | 00018|WE18234|ERLEDIGT|N
(1 row)

test=*# with t1 as (select satzart, status, split_part(telegramm, '|',2) as bestell_nr from tabelle1) select * from t1;
 satzart | status | bestell_nr
---------+--------+------------
 WESTART |     10 | WE18234
(1 row)

test=*#

Je nach Bedarf die anderen Felder auch noch so mit abschlagen. Nun hast Du eine Tabelle mit Namen "t1" und kannst die anderen Tabellen da gescheit joinen.
Da ich keine Lust habe, via OCR erst das Bild in Text zu wandeln mache ich hier erst mal nicht weiter - vermutlich schaffst Du es ja nun, oder?
 
Zurück
Oben