um eine relativ große Tabelle auzumisten möchte ich eine SQL-Abrage (HSQLDB) unter Extras / SQL absetzen.
Die zu reduzierende Tabelle RMABestand enthält die Felder ArtikelNr, Menge, und Eingangsdatum. In der Tabelle Artikelstamm ist zu jedem Artikel die Kreditorennr hinterlegt.
Nun möchte ich für einen bestimmten Kreditor in RMABestand alle Einträge löschen deren Eingangsdatum älter als ein bestimmter Wert ist und das Feld Menge leer ist.
Eine mit dem Assistenten erstellte Abfrage ergibt folgenden SQL-Code und zeigt richtig die Einträge die auf der "Abschussliste" stehen:
Code: Alles auswählen
SELECT "RMABestand"."ArtikelNr", "RMABestand"."Menge", "RMABestand"."Eingangsdatum", "Artikelstamm"."Kreditorennr" FROM "Artikelstamm" AS "Artikelstamm", "RMABestand" AS "RMABestand" WHERE "Artikelstamm"."Nr" = "RMABestand"."ArtikelNr" AND "RMABestand"."Menge" IS NULL AND "RMABestand"."Eingangsdatum" < {D '2008-03-11' } AND "Artikelstamm"."Kreditorennr" = '700030'
Code: Alles auswählen
DELETE FROM "RMABestand" WHERE "Artikelstamm"."Nr" = "RMABestand"."ArtikelNr" AND "RMABestand"."Menge" IS NULL AND "RMABestand"."Eingangsdatum" < {D '2008-03-11' } AND "Artikelstamm"."Kreditorennr" = '700030'
Code: Alles auswählen
DELETE FROM "RMABestand" WHERE (SELECT "RMABestand"."ArtikelNr", "RMABestand"."Menge", "RMABestand"."Eingangsdatum", "Artikelstamm"."Kreditorennr" FROM "Artikelstamm" AS "Artikelstamm", "RMABestand" AS "RMABestand" WHERE "Artikelstamm"."Nr" = "RMABestand"."ArtikelNr" AND "RMABestand"."Menge" IS NULL AND "RMABestand"."Eingangsdatum" < {D '2008-03-11' } AND "Artikelstamm"."Kreditorennr" = '700030')
Nach zwei Tagen googeln und probieren gehen mir die Ideeen aus, hab jemand noch einen Tipp?
Viele Grüße,
Andreas