Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

"Nichtduplikate finden"

Begonnen von koch, August 26, 2016, 11:29:48

⏪ vorheriges - nächstes ⏩

koch

Hallo Gemeinde,
ich habe zwei Tabellen, "Gesamtartikel" und "XY-LieferantArtikel_neu". In Gesamtartikel sind 1200 Datensätze von XY-Lieferant enthalten, in XY-LieferantArtikel_neu sind 780 Datensätze enthalten. Die XY-L... Datensätze sind bereits in Gesamtartikel. Jetzt möchte ich die fehelnden 420 Datensätze per Abfrage herausfinden. Habe eine Abfrage erstellt die Verknüpfung über die Artikelnummer hergestellt und den Filter auf XY-Lieferant gestellt. Jetzt zeigt er mir die 780 Datensätze an. ich will aber die fehlenden 420 um die Preise beim Lieferanten aktualisieren zu lassen. Habe über Kriterien mit <> versucht kein Erfolg. Bei einer Wenn() Funktion hapert es wahrscheinlich an der Syntax. Bitte um Hilfe Danke Hans

ebs17

ZitatJetzt möchte ich die fehelnden 420 Datensätze per Abfrage herausfinden.
Dazu benutzt man eine Inkonsistenzprüfung:
Datensätze aus A, die nicht in B sind
Mit freundlichem Glück Auf!

Eberhard

koch

Hallo Eberhard,
vielen Dank für Deine prompte Antwort und den Link.
Hier der SQL-Code:
SELECT Gesamtartikel.Lieferant, Gesamtartikel.Artikelnummer, Gesamtartikel.Artikel, ringelneuaufn.Artikelnummer,
FROM Gesamtartikel LEFT JOIN ringelneuaufn ON Gesamtartikel.Artikelnummer = ringelneuaufn.Artikelnummer
WHERE (((Gesamtartikel.Lieferant)=1) AND ((ringelneuaufn.Artikelnummer)=IsNull([ringelneuaufn.Artikelnummer])));
Da zeigt er mir leider keinen Datensatz an. Wobei die Abfrage ohne Ist Null()Kriterium alle Datensätze anzeigt und das Feld "ringelneuaufn.Artikelnummer" leer ist. Habe Brett vorm Kopf!!

ebs17

Letzteres musst Du Dir selber beantworten.
Dein Kriterium Lieferant=1 ruft ein ganz anderes Abfrageergebnis hervor - erst mal weglassen.

Nummer = IsNull(Nummer)
Das ist nun gehöriger Unsinn. IsNull ergibt als Ergebnis True oder False, und wohl kaum eine Nummer, egal ob Zahl oder Text, wird da eine Gleichheit erzielen.
Gleichheit von NULL (dem Nichts, dem Undefinierten) ist übrigens gleichfalls nicht möglich.

An Deiner Stelle könnte man die verlinkte Anweisung 1:1 kopieren und dann nur Bezeichnungen ersetzen.
Nachdenken und Probieren kannst Du , aber besser erst nach dem Test mit dem Ursprünglichen.
Mit freundlichem Glück Auf!

Eberhard

MaggieMay

Hallo,

hast du es schonmal hiermit versucht:
SELECT Gesamtartikel.Lieferant, Gesamtartikel.Artikelnummer, Gesamtartikel.Artikel
FROM Gesamtartikel LEFT JOIN ringelneuaufn
ON Gesamtartikel.Artikelnummer = ringelneuaufn.Artikelnummer
WHERE (
((Gesamtartikel.Lieferant)=1) AND
((ringelneuaufn.Artikelnummer) Is Null)
);


Freundliche Grüße
MaggieMay

koch

Hallo MaggieMay,
Das war die Lösung. Vielen Dank ;D ;D
Auch Vielen Dank an Domkarl und Eberhard für die Mühen.