Hallo Profis,
ich habe dank euerer Hilfe diese funktionierende
SQL Abfrage:
Delphi-Quellcode:
SELECT
Dok.ABFDocAuftragNr,
Dok.ABFDocDatum,
Dok.ABFDocKundeKurzbez,
Dok.ABFDocNetto,
Pos.ABFPosBuchNetto,
Pos.ABFPosEKPreis,
Pos.ABFPosBuchNetto / Pos.ABFPosMenge as EPreis,
EPreis- Pos.ABFPosEKPreis as Erloes,
Pos.ABFPosMenge as bestellt,
Pos.ABFPosArtNr,
Pos.ABFPosName1,
(SELECT
SUM(subPos.ABFPosMenge)
FROM
ABFDok subDok
INNER JOIN
ABFPos subPos ON subDok.ABFDocID = subPos.ABFPosdocID
WHERE
subDok.ABFDocAuftragNr = Dok.ABFDocAuftragNr AND
subPos.ABFPosArtNr = Pos.ABFPosArtNr AND
subDok.ABFDocOptFertig = false AND
subDok.ABFDocVisType = 2 AND
subPos.ABFPosEPreis > 0 AND
subPos.ABFPosType IN (0,7) AND
subPos.ABFPosNr <> ''
) AS geliefert
FROM
ABFDok Dok
INNER JOIN
ABFPos Pos ON Dok.ABFDocAuftragID = Pos.ABFPosDocID
WHERE
Dok.ABFDocOptFertig = false AND
Dok.ABFDocVisType = 1 AND
Pos.ABFPosEPreis > 0 AND
Pos.ABFPosType IN (0, 7) AND
Pos.ABFPosNr <> ''
order by Dok.ABFDocAuftragNr;
'
nun möchte ich noch den aktuellen Lagerbestand 'ArtBestand' aus der Tabelle 'ArtMenge' in die Abfrage einfügen, was mir nicht gelingt. Ich habe ein zusätzliches inner join eingefügt wie hier zusehen ist:
Delphi-Quellcode:
SELECT
Dok.ABFDocAuftragNr,
Dok.ABFDocDatum,
Dok.ABFDocKundeKurzbez,
Dok.ABFDocNetto,
Pos.ABFPosBuchNetto,
Pos.ABFPosEKPreis,
Pos.ABFPosBuchNetto / Pos.ABFPosMenge AS EPreis,
EPreis - Pos.ABFPosEKPreis AS Erloes,
Pos.ABFPosMenge AS bestellt,
Pos.ABFPosArtNr,
Pos.ABFPosName1,
(SELECT SUM(subPos.ABFPosMenge)
FROM ABFDok subDok
INNER JOIN ABFPos subPos ON subDok.ABFDocID = subPos.ABFPosdocID
WHERE subDok.ABFDocAuftragNr = Dok.ABFDocAuftragNr
AND subPos.ABFPosArtNr = Pos.ABFPosArtNr
AND subDok.ABFDocOptFertig = False
AND subDok.ABFDocVisType = 2
AND subPos.ABFPosEPreis > 0
AND subPos.ABFPosType IN (0, 7)
AND subPos.ABFPosNr <> '') AS geliefert,
ArtMenge.ArtBestand
FROM
ABFDok Dok
INNER JOIN
ABFPos Pos ON Dok.ABFDocAuftragID = Pos.ABFPosDocID
INNER JOIN
ArtMenge ON Pos.ABFPosArtNr = ArtMenge.ArtMengeNr
WHERE
Dok.ABFDocOptFertig = False
AND Dok.ABFDocVisType = 1
AND Pos.ABFPosEPreis > 0
AND Pos.ABFPosType IN (0, 7)
AND Pos.ABFPosNr <> ''
ORDER BY
Dok.ABFDocAuftragNr;
Ich erhalte hier die folgende Fehlermeldung:
Delphi-Quellcode:
Syntaxfehler (fehlender Operator) in Abfrageausdruck 'Dok.ABFDocAuftragID = Pos.ABFPosDocID
INNER JOIN
ArtMenge ON Pos.ABFPosArtNr = ArtMenge.ArtMengeNr'
Kann mir hier wieder jemand helfen? Ich freue mich.
LG Harry
P.S. Irgendwie lassen sich die Zeilen innerhalb des Delphi Codes nicht farblich markieren.