String in Artikelnummer ersetzen ...

tom2020

Neuer Benutzer
Beiträge
2
Hallo zusammen,

muss folgendes Problem lösen, wo ich leider nur so halbwegs weiß wie es lösbar ist (das akzepiert aber der SQL Server leider nicht :)
Es ist ein Microsoft SQL-Server 2008R2

Habe hier eine Artikelnummer die immer so aufgebaut ist 13-stellig: 0005AK-001-0000

Die ersten 6-stellen haben was mit einem Profil zu tun: 0005AK- die zweiten 3- stellen 001- geben das Format an und die letzten 4-stellen die Farbe
also z.B: 0000 oder NAMA (NaturMatt) um die geht es in der Frage.

D.h. dass nur die letzen 4 Stellen (rechts) der Artikelnummer relevant sind und genau die sollten genullt werden.

Wieder ein Beispiel: 1. 0005AK-001-0000 <--- Das ist der Grundartikel bzw. Preisartikel
Das ist der selbe Artikel in einer anderen Farbe: 2. 0005AK-001-NAMA <--- Das ist der Artikel wie oben in NaturMatt
Genau dieser Artikel soll in der Spalte Preisstamm so 3. 0005AK-001-0000 genullt werden wie unter 1.

Dass in der Spalte Artikelnummer selbstverständlich alles beim alten bleibt, sonst häten wir ja jeweils 10-20 gleiche Artikelnummern, ist ja logisch !

Es soll also nur die Spalte Preisartikelstamm auf den Preisartikel verweisen, das ist der Grund weshalb generell alle 4 Stellen rechts genullt werden müssen. Hier noch mal ein Beispiel dazu:

So ist der Zustand im Moment
Artikelnummer
0005AK-001-0000
0005AK-001-NAMA
0005AK-001-HABU
0005AK-001-1015
0005AK-001-2345
0005AK-001-SOHO

Preisartikelstamm
0005AK-001-0000
0005AK-001-NAMA
0005AK-001-HABU
0005AK-001-1015
0005AK-001-2345
0005AK-001-SOHO


SO SOLL DAS ERGEBNIS AUSSEHEN
Artikelnummer
0005AK-001-0000
0005AK-001-NAMA
0005AK-001-HABU
0005AK-001-1015
0005AK-001-2345
0005AK-001-SOHO

Preisartikelstamm
0005AK-001-0000
0005AK-001-0000
0005AK-001-0000
0005AK-001-0000
0005AK-001-0000

Wie muss ich hier vorgehen wenn die Datenbank DATACONVERT und die Tabelle dbo.preisartikel heißt ? Spalten sind ja oben bezeichnet.

USE DATACONVERT
GO

UPDATE preisartikel
set preisartikel = replace(Preisartikelnummer, 'oldstring', 'newstring')

Leider weiß ich hier nicht mehr weiter ...
 
Zuletzt bearbeitet:
Werbung:
vermutlich wäre der einfachste Weg, mit substring() arbeiten - einfach den ersten Teil so ermitteln und '0000' dran setzen.
 
Werbung:
Das war ein Volltreffer ! Vielen Dank ukulele. Danke auch an akretschmer, für die Rückmeldung. Ein kleiner Schreibfehler ist drin, da sind wir selbstverständlich selbst drauf gekommen :)
Es wird bei SET nicht die Tabelle angesprochen, sondern die Spalte:

UPDATE preisartikel SET Preisartikelnummer = left(Preisartikelnummer,11) + '0000'

Auf jeden Fall hat es funktioniert. Nochmals Danke!
 
Zurück
Oben