Hallo allesamt,
ich habe momentan folgende (stark vereinfachte) Tabellensituation. Ich habe eine Tabelle “persons” und “groups”, die über einen Suchpfad sowohl in schema1 als auch in schema2 vorhanden sind. In den beiden Schemata getrennt vorhanden ist die Tabelle “dates”.
[ATTACH]81[/ATTACH]
Ich muss nun eine Abfrage schreiben, die mir zu einer “persons_pk” über die Gruppennummer Start- und Enddatum aus der “dates”-Tabelle raussucht. Problem: In “group” gibt es die Spalte “use_schema”, die eine 0 oder eine 1 enthalten kann. Je nach Inhalt soll entweder das schema1 oder das schema2 ausgewählt werden.
Als Lösung hab ich mir eine Testfunktion gebaut, die das auslesen soll und dann die Tabelle zurückgeben soll:
CREATE OR REPLACE FUNCTION get_test () RETURNS char(32) AS '
DECLARE
BEGIN
RETURN ''schema1.dates'';
END;
' LANGUAGE 'plpgsql';
SELECT
persons.a,
persons.b,
groups.groups_pk,
dates.start,
dates.end
FROM
persons,
groups,
get_test(),
WHERE
persons.group_fk = groups.groups_pk AND
groups.dates_fk = dates.dates_pk AND
persons.persons_pk = 1234
;
Leider klappt das so nicht (“dates” nicht gefunden). Hat jemand eine Lösung?
Danke im Voraus!