Import ohne bestehende Artikel zu überschreiben ?

Begonnen von dobra, August 11, 2012, 09:59:50

« vorheriges - nächstes »

0 Mitglieder und 2 Gäste betrachten dieses Thema.

dobra

Hallo,

ich möchte aus einer verknüpften csv-Tabelle (aus Händlerliste gebaut) alle neuen Varianten importieren aber ohne dabei die bestehenden zu überschreiben.

Im WC habe ich ja nur die Optionen:

  • Löscht alle Daten und legt die importierten Daten neu an
  • Es werden Daten hinzugefügt und bestehende aktualisiert
  • Es werden Daten hinzugefügt, gelöscht und bestehende aktualisiert

Ich brauche in diesem speziellen Fall aber ein


  • Es werden neue Daten hinzugefügt und bestehende nicht verändert.

Geht das irgendwie ? vielleicht mit dem Statement ?
Meine Abfrage schaut jetzt so aus:
SELECT DISTINCT ([Lang-neu1].ArtNr), hop_sitm.MITEMID, [Lang-neu1].[Bez 1], [Lang-neu1].EAN_Artikel, ...
[Lang-neu1].Preis, ('Farbe: ' & RIGHT([Lang-neu1].ArtNr, 5) & ', ' &  LCASE([Lang-neu1].Farbe)) AS Beschreibung,
(RIGHT([Lang-neu1].ArtNr, 5) & ' <br><small>' &  LCASE([Lang-neu1].Farbe) & '</small>') AS Varibesch, ...
FROM hop_sitm INNER JOIN [Lang-neu1] ON hop_sitm.MITEMID = [Lang-neu1].MITEMID
ORDER BY [Lang-neu1].ArtNr;


Nachtrag:
mit
...
FROM hop_sitm INNER JOIN [Lang-neu1] ON hop_sitm.MITEMID = [Lang-neu1].MITEMID
WHERE ((([Lang-neu1].ArtNr) = [hop_sitm].[ARTNR]))
...


werden alle Varianten ausgegeben, die schon im WC vorhanden sind.

DIE will ich ja aber nicht ;) - sondern die die es noch nicht gibt
aber
WHERE ((([Lang-neu1].ArtNr) <> [hop_sitm].[ARTNR]))
WHERE ((([Lang-neu1].ArtNr) != [hop_sitm].[ARTNR]))
WHERE ((([Lang-neu1].ArtNr) IS NOT [hop_sitm].[ARTNR]))
funktioniert alles nicht  ???

Habe jetzt schon stundenlang gegoogelt aber keinen brauchbaren Hinweis gefunden :(
Hat denn niemand einen Tipp, wie ich das lösen kann ?
(würde mir langfristif seeeeeeeeeehr viel Tipparbeit ersparen ...)

mfG
dobra

ahe

Hallo Dobra,

versuche mal
WHERE [hop_sitm].[ARTNR] IS NULL
MfG ahe

dobra

mit
WHERE [hop_sitm].[ARTNR] IS NULL
wird überhaupt nichts ausgegeben  ???

Weder neue noch alte Varianten - nicht eine einzige Zeile ...

SELECT DISTINCT ([Lang-neu1].ArtNr), hop_sitm.MITEMID, [Lang-neu1].[Bez 1], LCase([Lang-neu1].Farbe) AS Ausdr1, [Lang-neu1].Zusammensetzung, [Lang-neu1].LfLg, [Lang-neu1].Knäuelgewicht, [Lang-neu1].Nadelstärke, [Lang-neu1].EAN_Artikel, [Lang-neu1].Preis, ('Farbe: ' & RIGHT([Lang-neu1].ArtNr, 4) & ', ' &  LCASE([Lang-neu1].Farbe)) AS Beschreibung, (RIGHT([Lang-neu1].ArtNr, 4) & ' <br><small>' &  LCASE([Lang-neu1].Farbe) & '</small>') AS Varibesch, 'kg' AS csveh, 'div' AS rechne, '0' AS istvari, 'LANG Yarns' AS marke
FROM hop_sitm INNER JOIN [Lang-neu1] ON hop_sitm.MITEMID = [Lang-neu1].MITEMID
WHERE [hop_sitm].[ARTNR] IS NULL
ORDER BY [Lang-neu1].ArtNr;


mit
WHERE [hop_sitm].[ARTNR] IS NOT NULL
werden alle ausgegeben ...
mfG
dobra

ahe

Nächster Versuch  ;D


SELECT DISTINCT ([Lang-neu1].ArtNr), hop_sitm.MITEMID, [Lang-neu1].[Bez 1], LCase([Lang-neu1].Farbe) AS Ausdr1, [Lang-neu1].Zusammensetzung, [Lang-neu1].LfLg, [Lang-neu1].Knäuelgewicht, [Lang-neu1].Nadelstärke, [Lang-neu1].EAN_Artikel, [Lang-neu1].Preis, ('Farbe: ' & RIGHT([Lang-neu1].ArtNr, 4) & ', ' &  LCASE([Lang-neu1].Farbe)) AS Beschreibung, (RIGHT([Lang-neu1].ArtNr, 4) & ' <br><small>' &  LCASE([Lang-neu1].Farbe) & '</small>') AS Varibesch, 'kg' AS csveh, 'div' AS rechne, '0' AS istvari, 'LANG Yarns' AS marke
FROM hop_sitm LEFT JOIN [Lang-neu1] ON hop_sitm.MITEMID = [Lang-neu1].MITEMID AND hop_sitm.ITEMID = [Lang-neu1].ArtNr
WHERE hop_sitm.ITEMID IS NULL
ORDER BY [Lang-neu1].ArtNr;
MfG ahe

dobra

kommt auch nichts
hop_sitm.ITEMID = [Lang-neu1].ArtNr
da kann aber auch nichts kommen, weil die Shop-Artikelnr. NICHT die Händlernummer ist !
mfG
dobra

ahe

Dann musst du ArtNr ersetzen durch das Feld welches die Shop-Artikelnummer beinhaltet.
MfG ahe

dobra

Hast mail - wird sonst hier zu "speziell" ....
mfG
dobra

dobra

ahe kann alles  ;D

falls das mal jemand braucht ...
so funktioniert es:
FROM [Lang-neu1] LEFT JOIN hop_sitm ON hop_sitm.MITEMID = [Lang-neu1].MITEMID AND [hop_sitm].[ARTNR] = [Lang-neu1].ArtNr
WHERE [hop_sitm].[ARTNR] IS NULL


DANKE ahe  :-*
Hast mir echt seeeeeeeeeehr geholfen damit !
= die Arbeit ganz wesentlich vereinfacht und den Zeitaufwand um 80% reduziert   8)
mfG
dobra