Access97: Abfrage läuft endlos und Union zu komplex obwohl Einzelabfragen es nicht sind.



  • Ich habe zwei Abfragen die sich nur in der Richtung in der die Abfragen auf die sie sich beziehen miteinander verknüpft sind und der Quelle für ein Feld unterscheiden.Die eine öffnet sich ohne Probleme aber die andere läuft endlos,aber Abfragen auf diese Abfrage laufen komischerweise nicht endlos.

    Die beiden Abfragen habe ich dann in einer Unionabfrage.Für diese kriege ich dann aber für einige Parameter das sie zu komplex sei,obwohl die Einzelabfragen Ergebnisse liefern.

    Hier der SQL der Abfrage die endlos läuft:

    SELECT stechzeit_vormittag.startDatum,
     Sum([stechzeit_vormittag].[Minuten]+([stechzeit_vormittag].[Stunden]*60)) AS [Summe Vormittag],
     Sum([stechzeit_nachmittag].[Minuten]+([stechzeit_nachmittag].[Stunden]*60)) AS [Summe Nachmittag],
     [Summe Vormittag]+[Summe Nachmittag] AS [Summe Gesamt],
     CInt([Summe Vormittag]/60)-[SKV] AS [Summe Stunden Vormittag],
     CInt([Summe Nachmittag]/60)-[SKN] AS [Summe Stunden Nachmittag],
     [Summe Vormittag] Mod 60 AS [Summe Minuten Vormittag],
     CInt([Summe Gesamt]/60) AS [Summe Stunden Gesamt], 
     [Summe Nachmittag] Mod 60 AS [Summe Minuten Nachmittag],
     [Summe Gesamt] Mod 60 AS [Summe Minuten Gesamt], Sum(stechzeit_vormittag.Stundenkorrektur) AS [Stundenkorrektur Vormittag],
     Sum(stechzeit_nachmittag.Stundenkorrektur) AS [Stundenkorrektur Nachmittag],
     [Stundenkorrektur Vormittag]+[Stundenkorrektur Nachmittag] AS [Stundenkorrektur Gesamt],
     IIf([Stundenkorrektur Vormittag]>=1,1,0) AS SKV,
     IIf([Stundenkorrektur Nachmittag]>=1,1,0) AS SKN,
     [SKV]+[SKN] AS SKG
    FROM stechzeit_nachmittag RIGHT JOIN stechzeit_vormittag ON stechzeit_nachmittag.startDatum = stechzeit_vormittag.startDatum
    GROUP BY stechzeit_vormittag.startDatum;
    


  • Ja, das alte Access.
    Wenn der Union zu groß wird könntest Du in den sauren Apfel beissen und die beiden Abfragen in temporäre Tabellen kippen und diese dann vereinen.
    Sind denn die Datenmengen sehr unterschiedlich? Was passiert testweise, wenn es weniger Daten sind? Ist die Effizienz noch genauso gering, wenn es kein Outer-Join ist? Kannst Du die Anwendungslogik ändern? Beispielsweise beide Schichttabellen vor der Auswertung zu einer zusammensetzen und den Join eleminieren?



  • Ich habe jetzt das ganze auf Datensätze aus 2008 beschränkt und es läuft jetzt,obwohl die Anzahl der Datensätze bei den Mitarbeitern für die es gelaufen ist und bei denen es nicht gelaufen ist gleich.Vieleicht steht in einigen der älteren Datensätze Mist.

    Ich habe zwar noch das komische Problem mit der Abfrage die endlos läuft wenn man sie direkt öffnet aber das stört nicht so sehr da ich nicht direkt auf sie zugreifen muss.


Log in to reply