Einzelnen Beitrag anzeigen

HCB

Registriert seit: 12. Feb 2020
195 Beiträge
 
Delphi 12 Athens
 
#1

SQL Query erweitern?

  Alt Gestern, 18:09
Datenbank: Access mdb • Version: 2003 • Zugriff über: SQL / Delphi FireDac
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.
  Mit Zitat antworten Zitat