Nach vielen Versuchen konnte ich folgendes Problem endlich lösen:
Gegeben sind zwei Tabellen, eine mit Messwerten und eine mit Sollwerten.
Eine Abfrage soll nun jedem Messwert den passendsten Sollwert zuordnen (den mit der geringsten Differenz). Gelöst habe ich das folgendermaßen:
Ich vermute, dass diese Abfrage nicht sehr effizient ist...
Daher meine Frage: Wie lässt sich das Problem eleganter und effizienter lösen?
(Im Anhang dazu auch eine Datenbank in OpenOffice.org Base)
Gegeben sind zwei Tabellen, eine mit Messwerten und eine mit Sollwerten.
Eine Abfrage soll nun jedem Messwert den passendsten Sollwert zuordnen (den mit der geringsten Differenz). Gelöst habe ich das folgendermaßen:
Code:
SELECT "Mess"."ID" AS "mida", "Mess"."Wert" AS "mwa", ABS("Mess"."Wert"-"Soll"."Wert") AS "da", "Soll"."ID" AS "sida", "Soll"."Wert" AS "swa" FROM "Mess", "Soll" INNER JOIN ( SELECT "Mess"."ID" AS "midb", "Mess"."Wert" AS "mwb", MIN(ABS("Mess"."Wert"-"Soll"."Wert")) as "db" FROM "Mess", "Soll" GROUP BY "midb", "mwb" ) ON TRUE WHERE "mida"="midb" AND "da"="db"
Daher meine Frage: Wie lässt sich das Problem eleganter und effizienter lösen?
(Im Anhang dazu auch eine Datenbank in OpenOffice.org Base)