Hallo K-H,
danke für den Vorschlag. Daran hatte ich auch schon gedacht, aber durch die Bedingung UserID = :UserID wird das Ergebnis der View stark eingeschränkt. Dann würde die View doch zunächst ein sehr großes Zwischenergebnis bringen, das zuerst mit der Haupttabelle geschnitten wird, bevor der filter greift. Oder wird das über die View hinweg optimiert?
Bzw. ist eine intern in der View benutzte Tabelle überhaupt von außen ansprechbar.
Zum besseren Verständnis dann doch die Definition der View (die Joins muste ich schon klammern, weil die Optimierung sonst nicht griff):
Code:
select AuftragsNr, UnterAuftrag
from (Auftrag as a
join Benutzer as b
on a.AnlageUserID = b.UserID),
(GenGruppeBereiche as c
join GenGruppeUser as d
on c.GenGruppe_ID = d.GenGruppe_ID)
where ((a.GenehmigungStatus = 'O' and
b.Bereichs_ID = c.Bereichs_ID) or
(a.GenehmigungStatus = 'P' and
a.AnnahmeStatus = 'O' and
a.EmpfaengerBereich = c.Bereichs_ID)) and
d.UserID = :UserID;
Viele Grüße
Sneak-L8