Mehrfach suchen und den richten Wert finden

Daniel

Neuer Benutzer
Beiträge
2
Hallo zusammen,

ich habe ein Problem bei dem ich nicht weiter komme. Ich bin was SQL angeht auch relativ neu, deshalb verzeiht mir meine Unbeholfenheit.

Aufgabe: Es wird anhand einer Datei der Dateiname ausgelesen. Diese ist eine Auftragsnummer, aber nicht vollständig. Beispiel: Dateiname -> (1234567)01 <- Anhang.
Der "Anhang" kann von 01 - 05 gehen. Die Auftragsnummer existiert nur einmal. Beispiel: (1234567)02 gibt es und die muss gesucht und gefunden werden. (1234567)03 gibt es nicht. 01, 04 und 05 gibt es ebenfalls nicht. Die Information muss über einen join aus einer anderen Tabelle abgefragt werden.

Ich habe es soweit fertig, das das Ganze funktioniert, bis auf diese Abfrage von mehreren Auftragsnummern. Ich weiß nicht genau wo ich etwas einbauen kann und muss um die Auftragsnummern einzeln abzufragen. Hat hier jemand eine Idee dazu und kann mir weiterhelfen?

Viele Grüße und vielen Dank vorab
Daniel
 
Werbung:
Da wir keine Ahnung haben wie deine Tabellen aussehen und Du uns auch nicht mitteilst wie deine bisherige Lösung aussieht wird das zeitlich schwer. Meine Glaskugel ist gerade in Reparatur....
 
Hallo Thallius, das kann ich verstehen wenn die Glaskugel nicht funktionstüchtig ist. Meine ist leider aktuell ebenfalls in der Reparatur.
Es gibt zwei Datenbanken. Erste Dokumentenmanagementsystem und zweite das ERP-System.
Hier einmal mein Code:

ALTER VIEW [dbo].[ViewName] as

select dw.id, dw.titel,

case (dw.dialog)
when 'protokoll' then 'protokoll'
end as dok_typ,
dw.DATEINAME, dw.BARCODE, dw.DIALOG, dw.INDEX, ln.* from dwdata.dbo.DOK DW
join
(
select
ab.t_orno as DOK_NUMMER,
ab.t_orno as SYS_DATEINAME,
ab.t_ofbp as FIRMA_NUMMER,
ab.t_cdf_ccll as REF,
ab.t_ddat,
ad.t_nama,
ad.t_namc,
ad.t_dsca,
ad.t_ccty

from [ERP].ERPdatenbank.dbo.ttdsls400110 AB
inner hash join [ERP].ERPdatenbank.dbo.ttccom130110 AD
on ad.t_cadr = AB.t_ofad) ln
on

REPLACE(DW.DATEINAME, 'AB_', '') COLLATE Latin1_General_100_CS_AS_KS_WS = ln.DATEINAME
WHERE DW.INDEX IS NULL AND DW.DIALOG = 'protokoll'
 
naja, irgendwas mit Mustersuche halt ...

Code:
postgres=# create table daniel (t text);
CREATE TABLE
postgres=# insert into daniel values ('123456703');
INSERT 0 1
postgres=# insert into daniel values ('999999902');
INSERT 0 1
postgres=# select * from daniel where t ~ '12345670[1-5]';
     t     
-----------
 123456703
(1 row)

postgres=#
 
Werbung:
Also wenn deine Datei 1234567xx heißt und die zugehörige Auftragsnummer 1234567 ist dann würde ich nur den Teil des Dateinamens verwenden der die Auftragsnummer repräsentiert. Aber sind das immer 7 Stellen oder auch mal 6 oder 8?

Du joinst dann also mit
Code:
ON REPLACE(DW.DATEINAME, 'AB_', '') = ln.DATEINAME
oder so.
 
Zurück
Oben