Danke Delphi.Narium für Deine Unterstützung. Du erweist dich jetzt schon als meine letzte Rettung
Ich habe eine externe Preisliste vom Lieferant z.B. K000217 auf USB-Stick E:\Preisdateien\K000217_p.mdb. Da sind die Artikelnummer, Brutto, Rabatt und Nettopreis mit dem glecinamigen Feldern hinterlegt.
Jetzt sollen die Preise eingelesen werden. Das läuft.
Nun will ich mit button1 sehen, welche Preise erhöht wurden. Ok läuft.
Button2 zeigt mir welche Preise gleich geblieben sind, also nicht erhäht wurden. ok, läuft.
Button3 zeigt mir welche Artikelpreise günstiger geworden sind, Ok läuft auch.
Jetzt brauche ich eine Abfrage, welche Artikel vom Lieferant z.B. K000217 nicht mehr in der externen Preisliste E:\Preisdateien\K000217_p.mdb vorkommen, weil der Lieferant diesen Artikel nicht mehr führt. Also in der externen Tabelle ekPreise nicht mehr existiert. Diese sollen mir angezeigt werden.
Mit der
Query werden die auch korrekt angezeigt. Das Problem besteht aber darin, dass ich aus der Tabelle sArtikel die Preise holen muss um diese nachher zu aktualisieren. Ich brauche also alle Felder die auch in dieser
Query (die läuft) vorhanden sind:
Delphi-Quellcode:
SELECT
ArtName1,
ArtVKPreis_0,
ArtVKPreis_1,
ArtZusInfo4,
ArtLiefLiefNr,
ArtLiefArtNr,
ArtcDate,
ArtLiefBestellNr,
ArtLiefEKPreis,
extern.brutto,
extern.nettopreis,
ArtEKDatum,
IIF([ArtLiefEKPreis] = 0,0, (extern.nettopreis - ArtLiefEKPreis)) as DiffEUR,
IIF([extern.brutto]= 0,0,(extern.brutto-extern.nettopreis)*100/extern.brutto) as Rabatt,
IIF([DIFFEur] = 0,0,DiffEUR*100/(ArtLiefEKPreis)) as prozent
FROM (ArtLief INNER JOIN (SELECT * FROM ekpreise IN 'E:\Preisdateien\K000217_p.mdb') extern
ON ArtLief.ArtLiefBestellnr=extern.Artikelnummer)
INNER JOIN sArtikel ON ArtLief.ArtLiefArtNr = sArtikel.ArtNr
where ArtLief.ArtLiefLiefNr = 'K000217' order by ArtLiefArtNr;
Es müssen also die Felder aus der Tabelle sArtikel - ArtName1, ArtVKPreis_0, ArtVKPreis_1 und ArtZusInfo4 in die Abfrage eingebaut werden:
Delphi-Quellcode:
SELECT ArtLief.ArtLiefArtnr, ArtLief.ArtLiefBestellNr, ArtLief.ArtLiefEKPreis,
extern.brutto,extern.nettopreis,
IIF([ArtLief.ArtLiefEKPreis] = 0,0, (extern.nettopreis - ArtLief.ArtLiefEKPreis)) as DiffEUR,
IIF([extern.brutto]= 0,0,(extern.brutto-extern.nettopreis)*100/extern.brutto) as Rabatt,
IIF([DIFFEur] = 0,0,DiffEUR*100/(ArtLief.ArtLiefEKPreis)) as prozent,
ArtLief.ArtEKDatum
FROM ArtLief
LEFT JOIN (
SELECT *
FROM ekpreise
IN 'E:\Preisdateien\K000217_p.mdb'
) AS extern ON ArtLief.ArtLiefBestellNr = extern.Artikelnummer
WHERE ArtLief.ArtLiefLiefNr = 'K000217' and extern.Artikelnummer IS NULL;
Genauer kann ich es leider nicht darstellen.
Meine
Query läuft leider nicht und bringt folgende Fehlermeldung obwohl die Zuweisungen korrekt sind:
Syntaxfehler (fehlender Operator) in Abfrageausdruck 'ArtLief.ArtLiefBestellNr = extern.Artikelnummer
LEFT JOIN sArtikel ON ArtLief.ArtLiefArtnr = sArtikel.ArtNr'
Delphi-Quellcode:
SELECT ArtLief.ArtLiefArtnr, ArtLief.ArtLiefBestellNr, ArtLief.ArtLiefEKPreis,
extern.brutto, extern.nettopreis,
IIF([ArtLief.ArtLiefEKPreis] = 0, 0, (extern.nettopreis - ArtLief.ArtLiefEKPreis)) AS DiffEUR,
IIF([extern.brutto] = 0, 0, (extern.brutto - extern.nettopreis) * 100 / extern.brutto) AS Rabatt,
IIF([DiffEUR] = 0, 0, DiffEUR * 100 / ArtLief.ArtLiefEKPreis) AS prozent,
ArtLief.ArtEKDatum,
sArtikel.ArtName1, sArtikel.ArtVKPreis_0, sArtikel.ArtVKPreis_1, sArtikel.ArtZusInfo4
FROM ArtLief
LEFT JOIN (
SELECT *
FROM ekpreise
IN 'E:\Preisdateien\K000217_p.mdb'
) AS extern ON ArtLief.ArtLiefBestellNr = extern.Artikelnummer
LEFT JOIN sArtikel ON ArtLief.ArtLiefArtnr = sArtikel.ArtNr
WHERE ArtLief.ArtLiefLiefNr = 'K000217' AND extern.Artikelnummer IS NULL;
Ich weiß nicht, wo der Fehler liegt. Kannst du nochmals versuchen mir zu helfen?
Dein Vorschlag funktioniert leider nicht.
LG Harry