SQL und Python Fehlermeldung

Hallo,
ich versuche gerade Python in meine MYSQl-Datenbank einzubauen.
Dazu verwende ich folgende SQL-Anweisung:

SQL_insert= (f"INSERT INTO Rechnungen"
        f" (Rechnungs_ID, Menge, Preis,Kunden_ID, Gesamt, Datum,"
        f" Bezahlt , Verschickt, Nachweis_ID, Leistungs_ID)(SELECT {Re_Nr} ,"
        f" Leistungsnachweis.Menge, Preise.Preis, Kunden.Kunden_ID,"
        f" Preis * Menge Gesamt, Leistungsnachweis.Datum, 0, 0,"
        f" Leistungsnachweis.Nachweis_ID, Leistungsnachweis.Leistungs_ID"
        f" FROM Leistungsnachweis Leistungsnachweis, Kunden Kunden,"
        f" Preise Preise, Leistungen Leistungen, Abweichende_Rechnungsdaten" 
        f" Abweichende_Rechnungsdaten WHERE "
        f" Leistungsnachweis.Kunden_ID = Kunden.Kunden_ID AND"
        f" Preise.Kunden_ID = Kunden.Kunden_ID AND"
        f" Preise.Leistungs_ID = Leistungen.Leistungs_ID AND"
        f" Leistungsnachweis.Datum = Leistungsnachweis.Datum"
        f" AND Preise.Kunden_ID = Leistungsnachweis.Kunden_ID"
        f" AND Preise.Leistungs_ID = Leistungsnachweis.Leistungs_ID"
        f" AND Kunden.Kunden_ID = Abweichende_Rechnungsdaten.Kunden_ID"
        f" AND  Leistungsnachweis.abrechenbar= true"
        f" AND Kunden.Kunden_ID = {Kunden_ID} AND NOT"
        f" Leistungsnachweis.Nachweis_ID IN"
        f" ( SELECT Rechnungen.Nachweis_ID FROM Rechnungen )"
        f" AND Abweichende_Rechnungsdaten.ID IN"
        f" (SELECT MAX( Abweichende_Rechnungsdaten.ID )"
        f" FROM Abweichende_Rechnungsdaten"
        f" WHERE Abweichende_Rechnungsdaten.Kunden_ID = {Kunden_ID}));")

edit: ich hab den Quelltext mal in lesbar formatiert, @karolus
Die Anweisung habe ich ohne die Platzhalter getestet - er funktioniert.
Leider erhalte ich die angehängte Fehlermeldung

möchte sql die Platzhalter nicht gequotet haben?
also etwa so:

   f' Bezahlt , Verschickt, Nachweis_ID, Leistungs_ID)(SELECT "{Re_Nr}" ,'
   # die `"doppelquotes" aussenrum musst dann auch wechseln zu 'einfachen'

$ python3

Re_Nr = 10001
Kunden_ID = 1001
SQL_insert = (f" … der komplette Inhalt Deines Kastens
print(SQL_insert)

Gibt einen vollständigen SQL-Befehl aus, der dann im SQL-Fenster getestet werden kann (ohne die äußeren Quotes).

'INSERT INTO Rechnungen (Rechnungs_ID, Menge, Preis,Kunden_ID, Gesamt, Datum, Bezahlt , Verschickt, Nachweis_ID, Leistungs_ID)(SELECT 10001 , Leistungsnachweis.Menge, Preise.Preis, Kunden.Kunden_ID, Preis * Menge Gesamt, Leistungsnachweis.Datum, 0, 0, Leistungsnachweis.Nachweis_ID, Leistungsnachweis.Leistungs_ID FROM Leistungsnachweis Leistungsnachweis, Kunden Kunden, Preise Preise, Leistungen Leistungen, Abweichende_Rechnungsdaten Abweichende_Rechnungsdaten WHERE  Leistungsnachweis.Kunden_ID = Kunden.Kunden_ID AND Preise.Kunden_ID = Kunden.Kunden_ID AND Preise.Leistungs_ID = Leistungen.Leistungs_ID AND Leistungsnachweis.Datum = Leistungsnachweis.Datum AND Preise.Kunden_ID = Leistungsnachweis.Kunden_ID AND Preise.Leistungs_ID = Leistungsnachweis.Leistungs_ID AND Kunden.Kunden_ID = Abweichende_Rechnungsdaten.Kunden_ID AND  Leistungsnachweis.abrechenbar= true AND Kunden.Kunden_ID = 1001 AND NOT Leistungsnachweis.Nachweis_ID IN ( SELECT Rechnungen.Nachweis_ID FROM Rechnungen ) AND Abweichende_Rechnungsdaten.ID IN (SELECT MAX( Abweichende_Rechnungsdaten.ID ) FROM Abweichende_Rechnungsdaten WHERE Abweichende_Rechnungsdaten.Kunden_ID = 1001));'

Und wenn man die ganzen Namen für MySQL quoted, dann sieht das Statement so aus:

INSERT INTO Rechnungen (
    `Rechnungs_ID`, 
    `Menge`, 
    `Preis`,
    `Kunden_ID`, 
    `Gesamt`, 
    `Datum`, 
    `Bezahlt` , 
    `Verschickt`, 
    `Nachweis_ID`, 
    `Leistungs_ID`
)
(
    SELECT 
    10001 , 
    `Leistungsnachweis`.`Menge`, 
    `Preise`.`Preis`, 
    `Kunden`.`Kunden_ID`, 
    `Preis` * `Menge` `Gesamt`, 
    `Leistungsnachweis`.`Datum`, 
    0, 
    0, 
    `Leistungsnachweis`.`Nachweis_ID`, 
    `Leistungsnachweis`.`Leistungs_ID` 
    FROM `Leistungsnachweis` `Leistungsnachweis`, 
    `Kunden` `Kunden`, `Preise` `Preise`, 
    `Leistungen` `Leistungen`, 
    `Abweichende_Rechnungsdaten` `Abweichende_Rechnungsdaten` 
    WHERE  `Leistungsnachweis`.`Kunden_ID` = `Kunden`.`Kunden_ID` 
    AND `Preise`.`Kunden_ID` = `Kunden`.`Kunden_ID` 
    AND `Preise`.`Leistungs_ID` = `Leistungen`.`Leistungs_ID` 
    AND `Leistungsnachweis`.`Datum` = `Leistungsnachweis`.`Datum` 
    AND `Preise`.`Kunden_ID` = `Leistungsnachweis`.`Kunden_ID` 
    AND `Preise`.`Leistungs_ID` = `Leistungsnachweis`.`Leistungs_ID` 
    AND `Kunden`.`Kunden_ID` = `Abweichende_Rechnungsdaten`.`Kunden_ID` 
    AND  `Leistungsnachweis`.`abrechenbar`= true 
    AND `Kunden`.`Kunden_ID` = 1001 
    AND NOT `Leistungsnachweis`.`Nachweis_ID` IN ( 
        SELECT `Rechnungen`.`Nachweis_ID` FROM `Rechnungen` 
    ) 
    AND `Abweichende_Rechnungsdaten`.`ID` IN (
        SELECT MAX( `Abweichende_Rechnungsdaten`.`ID` ) 
        FROM `Abweichende_Rechnungsdaten` 
        WHERE `Abweichende_Rechnungsdaten`.`Kunden_ID` = 1001
    )
);

Setze eine gültige Rechnungs_ID und Kunden_ID ein, und das Ding könnte funktionieren.

Danke für Eure Anregungen.
Meine Anweisung hat soweit gestimmt. MAn benötigt keine Quotes um die {} und auch die Spaltennamen brauchen keine.
Ich hatte beim Beginn einer neuen Zeile, in der eine Variable angegeben ist, das “f” am Anfang vergessen.
Also:

f"AND Kunden.Kunden_ID = Abweichende_Rechnungsdaten.Kunden_ID AND  Leistungsnachweis.abrechenbar= true AND Kunden.Kunden_ID = {Kunden_ID} AND NOT Leistungsnachweis.Nachweis_ID IN ( SELECT Rechnungen.Nachweis_ID FROM Rechnungen ) AND Abweichende_Rechnungsdaten.ID IN (SELECT MAX( Abweichende_Rechnungsdaten.ID ) FROM Abweichende_Rechnungsdaten "\
    f"WHERE Abweichende_Rechnungsdaten.Kunden_ID = {Kunden_ID}));")

Nochmals herzlichen Dank:-)