Hallo Andreas,
spontan fällt folgendes auf:
Eine mit dem Assistenten erstellte Abfrage ergibt folgenden SQL-Code und zeigt richtig die Einträge die auf der "Abschussliste" stehen:
Das muss auch korrekt sein, denn Du stellst eindeutig den Bezug zu zwei Tabellen her, die Du anschließend über WHERE mit Konditionen versiehst.
Code: Alles auswählen
FROM "Artikelstamm" AS "Artikelstamm", "RMABestand" AS "RMABestand"
Soweit also OK.
Wenn ich jetzt den SELECT-Teil durch DELET FROM ersetze, bekomme ich die Fehlermeldung "Column not found: Artikelstamm.Nr":
Richtig. Das muss auch so sein, denn Du nimmst nur Bezug auf eine Tabelle, nämlich auf "RMABestand" (DELETE FROM "RMABestand"). Trotzdem verweist Du in der WHERE Klausel auf Spalten einer Tabelle ("Artikelstamm") die bisher nicht "bekanntgegeben" wurde. "Column not found: Artikelstamm.Nr": ist somit nachvollziehbar.
Aus den Weiten des Netztes hat mir Google folgenden Tipp gebracht: ... Fehlermeldung "Not a condition"
Die Fehlermeldung kannst Du wörtlich nehmen, denn in dem geklammerten Ausdruck hinter WHERE steht nichts anderes als eine komplette Ergebnistabelle. Jedoch keine einschränkende Bedingung!
Vereinfacht könnte man dieses (falsche) Beispiel so konstruieren:
Und das wird nicht funktionieren!
Da HSQLDB (anscheinend) den multiple-table Syntax bei DELETE nicht unterstützt, bliebe nur der Weg über entsprechende Unterselects, also z.B.
Code: Alles auswählen
DELETE FROM [Tab_A]
WHERE [Tab_A].[Spalte1] IN (SELECT [Spalte1] FROM [Tab_A],[Tab_B] WHERE [Spalte2] >[Spalte3])
AND [Tab_A].[Spalte2] IN (SELECT [Spalte2] FROM [Tab_A],[Tab_B] WHERE [Spalte1] =[Spalte3])
Versuche Deine Abfrage am besten so aufzubauen.
Gruß Barlee