Bestimmte Daten aus Artikeltabelle in Merkmaltabelle speichern

SA-Luebeck

Neuer Benutzer
Beiträge
4
Hallo an Alle,



ich habe ein Problem und komme nicht weiter. Ich hoffe, dass mir jemand hilft:
upload_2019-12-14_15-10-47.png
Ich habe eine Tabelle „tArtikel“, in der alle Artikel aufgelistet sind. Die Artikel, die eine Endung „-00“ haben, soll die Farbe schwarz zugewiesen werden. Allerdings ist bei den Artikeln das Problem, dass einige Artikel bereits die Farbe schwarz verfügen, sodass es bei meiner SQL-Anweisung eine Fehlermeldung erscheint, dass die Farbe bereits zugewiesen ist.

In der Tabelle „tArtikelMerkmal“ werden den Artikeln die Farbwerte zugewiesen (kMerkmal= 10 = Farbe und kMerkmalWert=9666= blau).

Nun meine Frage:

Ich kann die Artikel filtern, die die Farbe schwarz nicht verfügen:

Select kMerkmal, kMerkmalWert, KArtikel from tArtikelMerkmal where kArtikel = (Select * from tArtikel where cArtNr=‘SA-%%-00‘) and kMerkmalWert !=6666 (schwarz).



Nach dieser Abfrage erscheint eine Liste mit über 2700 Werten. Wie kann ich nun diese Ergebnisse in die Tabelle tArtikelMerkmal mit der Farbe einfügen.



Ich habe bereits versucht die Methode INSERT INTO anzuwenden. Aber auch da kam eine Fehlermeldung, weil man bi diesem Befehl maximal 1000 Zeilen in Anspruch nehmen kann und bei einem INSERT INTO VALUES Befehl nicht nur ein kArtikel zugewiesen wird, sondern alle.



Ich habe schon gesucht und bin da auf den Befehl if not esists gekommen.



LG



SA_Luebeck
 
Werbung:
etwas wirr das alles, aber vielleicht hilft dies:

Code:
bdr3=# select * from tartikel ;
 kartikel |    cartnr   
----------+--------------
        1 | SA-123456-00
        2 | SA-654321-00
        3 | SA-987654-00
        4 | SA-456789-00
(4 rows)

bdr3=# select * from kartikelmerkmal ;
 kmerkmal | kmerkmalwert | kartikel
----------+--------------+----------
       10 |         9666 |        7
       20 |         6999 |       99
       30 |         8955 |      100
       40 |         8855 |      202
(4 rows)
bdr3=# insert into kartikelmerkmal select 10,6666,kartikel from (select kartikel from tartikel where cartnr like '%-00' except select kartikel from kartikelmerkmal) foo;
INSERT 0 4
bdr3=# select * from kartikelmerkmal ;
 kmerkmal | kmerkmalwert | kartikel
----------+--------------+----------
       10 |         9666 |        7
       20 |         6999 |       99
       30 |         8955 |      100
       40 |         8855 |      202
       10 |         6666 |        1
       10 |         6666 |        4
       10 |         6666 |        2
       10 |         6666 |        3
(8 rows)
 
Zurück
Oben