Announcement

Collapse
No announcement yet.

2 Tabellen, INNER JOIN, Optimierungsproblem

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • 2 Tabellen, INNER JOIN, Optimierungsproblem

    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:

    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"
    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)
    Attached Files
Working...
X