Moin,
weil ich es ausprobieren wollte, habe ich die Tabellen Artefakte und Kartenlisten KOMPLETT in eine Datenbank importiert.
Artefakte heißt jetzt T_ARTEFAKTE_IST
Kartenlisten KOMPLETT heißt hier T_ARTEFAKTE_SOLL
Dann habe ich eine Tabelle T_EDITIONEN eingebaut, in der jede Edition eine eigene Nummer, ID bekommen hat.
In den Tabellen
T_ARTEFAKTE_IST
T_ARTEFAKTE_SOLL
steht jetzt nicht mehr der Name der Edition, zu denen die Karten gehören, sondern die Nummer der Edition, und zwar in Spalte FK_ID_EDITION.
FK signalisiert ForeignKey oder Fremdschlüssel, habe ich einfach so benannt, könnte auch Ediitionsnummer heißen.
Ab jetzt war es ganz einfach, denn in Datenbanken kann man einen Befehl absetzen, der sinngemäß bedeutet:
Wähle alle Karten aus, die in T_ARTEFAKTE_SOLL mit Edition 5 vorkommen ausser die Karten, die in T_ARTEFAKTE_IST in der Edition 5 vorkommen:
Siehe Abfrage qARTEFAKE_FEHLEND
Code: Alles auswählen
SELECT
"Kartenname"
FROM
"T_ARTEFAKTE_SOLL"
WHERE
"Kartenname" NOT IN
( SELECT
"Kartenname"
FROM
"T_ARTEFAKTE_IST"
WHERE "FK_ID_EDITION" = :qIDE )
AND
( "T_ARTEFAKTE_SOLL"."FK_ID_EDITION" = :qIDE OR :qIDE IS NULL )
Wenn du nun das Formular
F_ARTEFAKTE öffnest, kannst du oben die Edition auswählen, siehst in der Tabelle links was du hast und rechts das was fehlt:
- FehlendeKarten.png (50.58 KiB) 2496 mal betrachtet
Gruß R