Bitte beschreibe mal etwas genauer, was Du vorhast.
Wenn ich das zur Zeit richtig interpretiere, möchtest Du aus der Tabelle ArtLief alle Sätze, zu denen es kein Gegenstück in der externen Tabelle ekpreise gibt (AND extern.Artikelnummer IS NULL). Damit dürfte jede Berechnung mit extern.brutto und extern.netto scheitern.
Bitte ersetze das beim SELECT * den * durch die tatsächlich benötigten Spalten der externen Tabelle. Die macht das Verstehen der externen Daten für externe Helfer einfacher
SQL-Code:
IIF(ArtLief.ArtLiefEKPreis = 0, 0, extern.nettopreis - ArtLief.ArtLiefEKPreis) AS DiffEUR,
IIF(DiffEUR = 0, 0, DiffEUR * 100 / ArtLief.ArtLiefEKPreis) AS prozent,
Funktioniert das? Auf eine mit AS benannte Spalte dann später zugreifen?
Zeig' bitte mal Deine Versuche, in denen Du versucht hast die Tabelle sArtikel einzubinden. Hast Du "einfach nur" kein Ergebnis erhalten oder eine oder mehrere Fehlermeldungen? Wenn Fehlermeldungen, welche?
Momentan sehe ich keinen ernsthaften Grund, warum es nicht funktionieren sollte, außer, dass ich mit der korrekten Syntax vom
Access-
SQL absolut nicht vertraut bin.
Ein Versuch:
SQL-Code:
SELECT
ArtLief.ArtLiefArtnr,
ArtLief.ArtLiefBestellNr,
ArtLief.ArtLiefEKPreis,
ArtLief.ArtEKDatum,
sArtikel.ArtZusInfo4,
-- das Folgende erscheint mir (wegen extern.Artikelnummer IS NULL) sinnfrei, da die Werte immer = Null sind
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 -- hier bin ich fast sicher, dass das nicht geht
FROM
(
ArtLief
LEFT JOIN
( SELECT
Artikelnummer,
Brutto,
Netto
FROM ekpreise
IN 'E:\Preisdateien\K000217_p.mdb'
) AS extern ON ArtLief.ArtLiefBestellNr = extern.Artikelnummer
)
INNER JOIN sArtikel ON ArtLief.ArtLiefArtNr = sArtikel.ArtNr
WHERE
ArtLief.ArtLiefLiefNr = 'K000217'
AND extern.Artikelnummer IS NULL