Hallo!
Ich bitte um Hilfe bei folgendem Problem:
Ich habe 2 Tabellen: ARTIKEL_IMPORT und ARTIKEL
Die Tabelle ARTIKEL_IMPORT enthält alle Artikel. Also neue und teilweise alte Artikel.
Ich möchte auf dieser Grundlage den Artikelstand, Preis und andere Felder der Tabelle ARTIKEL aktualisieren!
Eindeutige Zuordnung ist über 2 Felder möglich:
ARTIKELNR und BARCODE
Hier mein Ansatz zum Imort: funktioniert soweit gut:
[highlight=sql]
INSERT INTO ARTIKEL
SELECT * FROM ARTIKEL_IMPORT WHERE ARTNUM NOT IN
(SELECT ARTNUM FROM ARTIKEL)
OR BARCODE NOT IN
(SELECT BARCODE FROM ARTIKEL)
[/highlight]
---------
Mein Problem liegt beim UPDATE von Preisen:
[highlight=sql]
UPDATE ARTIKEL
SET ARTIKEL.EK_PREIS =
(SELECT ARTIKEL_IMPORT.EK_PREIS
FROM ARTIKEL_IMPORT
WHERE ARTIKEL.ARTNUM = ARTIKEL_IMPORT.ARTNUM
AND ARTIKEL.BARCODE = ARTIKEL_IMPORT.BARCODE),
ARTIKEL.VK1 =
(SELECT ARTIKEL_IMPORT.VK1
FROM ARTIKEL_IMPORT
WHERE ARTIKEL.ARTNUM = ARTIKEL_IMPORT.ARTNUM
AND ARTIKEL.BARCODE = ARTIKEL_IMPORT.BARCODE),
ARTIKEL.VK1B =
(SELECT ARTIKEL_IMPORT.VK1B
FROM ARTIKEL_IMPORT
WHERE ARTIKEL.ARTNUM = ARTIKEL_IMPORT.ARTNUM
AND ARTIKEL.BARCODE = ARTIKEL_IMPORT.BARCODE),
ARTIKEL.VK2 =
(SELECT ARTIKEL_IMPORT.VK2
FROM ARTIKEL_IMPORT
WHERE ARTIKEL.ARTNUM = ARTIKEL_IMPORT.ARTNUM
AND ARTIKEL.BARCODE = ARTIKEL_IMPORT.BARCODE),
ARTIKEL.VK2B =
(SELECT ARTIKEL_IMPORT.VK2B
FROM ARTIKEL_IMPORT
WHERE ARTIKEL.ARTNUM = ARTIKEL_IMPORT.ARTNUM
AND ARTIKEL.BARCODE = ARTIKEL_IMPORT.BARCODE)
WHERE REC_ID = (SELECT REC_ID FROM ARTIKEL_IMPORT WHERE REC_ID=ARTIKEL.REC_ID)
AND USERFELD_01 <> 1
[/highlight]
---------
Das funktioniert zwar grundsätzlich, dauert aber sehr lange:
Bei 5000 Artikeln 5Minuten.
----> Meine Frage: Kann man das vereinfachen, sodass es schneller läuft?
Ich bitte um Hilfe!
Ich bitte um Hilfe bei folgendem Problem:
Ich habe 2 Tabellen: ARTIKEL_IMPORT und ARTIKEL
Die Tabelle ARTIKEL_IMPORT enthält alle Artikel. Also neue und teilweise alte Artikel.
Ich möchte auf dieser Grundlage den Artikelstand, Preis und andere Felder der Tabelle ARTIKEL aktualisieren!
Eindeutige Zuordnung ist über 2 Felder möglich:
ARTIKELNR und BARCODE
Hier mein Ansatz zum Imort: funktioniert soweit gut:
[highlight=sql]
INSERT INTO ARTIKEL
SELECT * FROM ARTIKEL_IMPORT WHERE ARTNUM NOT IN
(SELECT ARTNUM FROM ARTIKEL)
OR BARCODE NOT IN
(SELECT BARCODE FROM ARTIKEL)
[/highlight]
---------
Mein Problem liegt beim UPDATE von Preisen:
[highlight=sql]
UPDATE ARTIKEL
SET ARTIKEL.EK_PREIS =
(SELECT ARTIKEL_IMPORT.EK_PREIS
FROM ARTIKEL_IMPORT
WHERE ARTIKEL.ARTNUM = ARTIKEL_IMPORT.ARTNUM
AND ARTIKEL.BARCODE = ARTIKEL_IMPORT.BARCODE),
ARTIKEL.VK1 =
(SELECT ARTIKEL_IMPORT.VK1
FROM ARTIKEL_IMPORT
WHERE ARTIKEL.ARTNUM = ARTIKEL_IMPORT.ARTNUM
AND ARTIKEL.BARCODE = ARTIKEL_IMPORT.BARCODE),
ARTIKEL.VK1B =
(SELECT ARTIKEL_IMPORT.VK1B
FROM ARTIKEL_IMPORT
WHERE ARTIKEL.ARTNUM = ARTIKEL_IMPORT.ARTNUM
AND ARTIKEL.BARCODE = ARTIKEL_IMPORT.BARCODE),
ARTIKEL.VK2 =
(SELECT ARTIKEL_IMPORT.VK2
FROM ARTIKEL_IMPORT
WHERE ARTIKEL.ARTNUM = ARTIKEL_IMPORT.ARTNUM
AND ARTIKEL.BARCODE = ARTIKEL_IMPORT.BARCODE),
ARTIKEL.VK2B =
(SELECT ARTIKEL_IMPORT.VK2B
FROM ARTIKEL_IMPORT
WHERE ARTIKEL.ARTNUM = ARTIKEL_IMPORT.ARTNUM
AND ARTIKEL.BARCODE = ARTIKEL_IMPORT.BARCODE)
WHERE REC_ID = (SELECT REC_ID FROM ARTIKEL_IMPORT WHERE REC_ID=ARTIKEL.REC_ID)
AND USERFELD_01 <> 1
[/highlight]
---------
Das funktioniert zwar grundsätzlich, dauert aber sehr lange:
Bei 5000 Artikeln 5Minuten.
----> Meine Frage: Kann man das vereinfachen, sodass es schneller läuft?
Ich bitte um Hilfe!
Comment