Atwist hat geschrieben:... muss jetzt mal sehen was Du alles gemacht hast es ist viel geändert jetzt muss ich noch verstehen wie dass alles funktioniert.
Hi,
ich versuche mal das wichtigste zu erklären.
Zunächst habe ich noch eine Änderung durchgeführt,
VALUE heißt nun
RANK.
Damit du nachvollziehen kannst, was ich gemacht habe, anbei deine Originaldatei,
ohne Änderungen an den Tabellen.
Das schwierigste ist, aus deiner Tabellenmatrix, wo die Jahre
nebeneinander angeordnet sind, eine Tabelle zu machen, in der alle Werte
untereinander angeordnet sind. So ist es möglich mit einem Suchbegriff alle Werte zu filtern.
Führe EINMAL über
Extras/SQL... die folgenden Befehle aus (Copy/Paste -> Ausführen):
Code: Alles auswählen
CREATE TABLE "RANK_JAAR"("JAAR" INTEGER NOT NULL,"FK_ID" INTEGER NOT NULL,"RANK" INTEGER,PRIMARY KEY("JAAR","FK_ID"));
ALTER TABLE "RANK_JAAR" ADD CONSTRAINT FKIDTITEL FOREIGN KEY("FK_ID") REFERENCES "Lijst"("ID") ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE "zoekfilter" ADD COLUMN "F-Top-jaar" INTEGER
INSERT INTO RANK_JAAR (JAAR, FK_ID, RANK) SELECT 1999, ID, "1999" FROM "Lijst" WHERE "1999" > 0;
INSERT INTO RANK_JAAR (JAAR, FK_ID, RANK) SELECT 2000, ID, "2000" FROM "Lijst" WHERE "2000" > 0;
INSERT INTO RANK_JAAR (JAAR, FK_ID, RANK) SELECT 2001, ID, "2001" FROM "Lijst" WHERE "2001" > 0;
INSERT INTO RANK_JAAR (JAAR, FK_ID, RANK) SELECT 2002, ID, "2002" FROM "Lijst" WHERE "2002" > 0;
INSERT INTO RANK_JAAR (JAAR, FK_ID, RANK) SELECT 2003, ID, "2003" FROM "Lijst" WHERE "2003" > 0;
INSERT INTO RANK_JAAR (JAAR, FK_ID, RANK) SELECT 2004, ID, "2004" FROM "Lijst" WHERE "2004" > 0;
INSERT INTO RANK_JAAR (JAAR, FK_ID, RANK) SELECT 2005, ID, "2005" FROM "Lijst" WHERE "2005" > 0;
INSERT INTO RANK_JAAR (JAAR, FK_ID, RANK) SELECT 2006, ID, "2006" FROM "Lijst" WHERE "2006" > 0;
INSERT INTO RANK_JAAR (JAAR, FK_ID, RANK) SELECT 2007, ID, "2007" FROM "Lijst" WHERE "2007" > 0;
INSERT INTO RANK_JAAR (JAAR, FK_ID, RANK) SELECT 2008, ID, "2008" FROM "Lijst" WHERE "2008" > 0;
INSERT INTO RANK_JAAR (JAAR, FK_ID, RANK) SELECT 2009, ID, "2009" FROM "Lijst" WHERE "2009" > 0;
INSERT INTO RANK_JAAR (JAAR, FK_ID, RANK) SELECT 2010, ID, "2010" FROM "Lijst" WHERE "2010" > 0;
INSERT INTO RANK_JAAR (JAAR, FK_ID, RANK) SELECT 2011, ID, "2011" FROM "Lijst" WHERE "2011" > 0;
INSERT INTO RANK_JAAR (JAAR, FK_ID, RANK) SELECT 2012, ID, "2012" FROM "Lijst" WHERE "2012" > 0;
INSERT INTO RANK_JAAR (JAAR, FK_ID, RANK) SELECT 2013, ID, "2013" FROM "Lijst" WHERE "2013" > 0;
INSERT INTO RANK_JAAR (JAAR, FK_ID, RANK) SELECT 2014, ID, "2014" FROM "Lijst" WHERE "2014" > 0;
ALTER TABLE "Lijst" DROP "1999";
ALTER TABLE "Lijst" DROP "2000";
ALTER TABLE "Lijst" DROP "2001";
ALTER TABLE "Lijst" DROP "2002";
ALTER TABLE "Lijst" DROP "2003";
ALTER TABLE "Lijst" DROP "2004";
ALTER TABLE "Lijst" DROP "2005";
ALTER TABLE "Lijst" DROP "2006";
ALTER TABLE "Lijst" DROP "2007";
ALTER TABLE "Lijst" DROP "2008";
ALTER TABLE "Lijst" DROP "2009";
ALTER TABLE "Lijst" DROP "2010";
ALTER TABLE "Lijst" DROP "2011";
ALTER TABLE "Lijst" DROP "2012";
ALTER TABLE "Lijst" DROP "2013";
ALTER TABLE "Lijst" DROP "2014";
ALTER TABLE "Lijst" DROP "2015";
ALTER TABLE "Lijst" DROP "2016";
CHECKPOINT DEFRAG
Dann in den Bereich der Tabellen wechseln und Menü Ansicht/Tabellen aktualisieren
Was passiert:
- ...erzeugt die neue Tabelle RANK_JAAR
- ...erzeugt die Beziehung, die du unter Extras/Beziehungen sehen kannst
- ...erzeugt eine zusätzlich Spalte in der Tabelle "zoekfilter"
- ...fügt nun die Werte der Spalten 1999-2016 deiner Tabelle "Lijst" untereinander in die neue Tabelle ein
- ...löscht anschließend die Spalten 1999-2016 aus deiner Tabelle "Lijst"
- komprimiert die Datenbank
Das neue Formular
und die Abfragen
- q_Top2000
- Qzoekfilter1_F3K
habe ich schon eingebaut, ab jetzt müssten sie auch funktionieren.
Versuchs mal, aber unbedingt mit angehängten Beispiel.
Gruß R