Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: datekk am Oktober 26, 2015, 10:47:49

Titel: Abfrage optimieren
Beitrag von: datekk am Oktober 26, 2015, 10:47:49
Hi Access Experten,

ich habe eine Abfrage, deren Ausführung ewig dauert... Sicher gibt es hier noch einen Kniff, wie Access dies schneller ausführen könnte... Hier der SQL Code:

SELECT AngebotAuftrag_Inhalte.ID_Verlag, Vertrieb.Nachname, Magazine.Magazintitel, AngebotAuftrag_Inhalte.ID_Ausgabe, AngebotAuftrag_Inhalte.Ausgabe, AngebotAuftrag_Inhalte.Angebotspreis, AngebotAuftrag.Art, Year([ET]) AS Berichtsjahr, Vertrieb.ID_Vertrieb, AngebotAuftrag.Vertragseingang, Kundenliste.Firmenname, Format(Nz(DSum("Angebotspreis","AbfrageDOMSUM","Ausgabe='" & Val([Ausgabe])-1 & "-" & Mid([Ausgabe],6) & "'" & " And Magazinname='" & [Magazintitel] & "'" & " And Vertragseingang<= format(dateadd('yyyy',-1,date()),'yyyy-mm-dd')" & "And ID_Vertrieb=" & [ID_Vertrieb]),0),"Currency") AS UmsatzVJ, Val([Ausgabe])-1 & "-" & Mid([Ausgabe],6) AS AusgabeVJ

FROM (((AngebotAuftrag_Inhalte INNER JOIN Magazine ON AngebotAuftrag_Inhalte.ID_Magazin = Magazine.ID) INNER JOIN AngebotAuftrag ON AngebotAuftrag_Inhalte.AngebotAuftrag_ID = AngebotAuftrag.ID_AngebotAuftrag) INNER JOIN Vertrieb ON AngebotAuftrag.Vertrieb_ID = Vertrieb.ID_Vertrieb) INNER JOIN Kundenliste ON AngebotAuftrag.Kunden_ID = Kundenliste.ID_Kunde

WHERE (((AngebotAuftrag_Inhalte.ID_Verlag)=1) AND ((AngebotAuftrag.Art)="Auftrag") AND ((Vertrieb.ID_Vertrieb)=GetLoginID()));


Ziel dieser Abfrage war es, den tagesgenauen Vorjahresumsatz in der Tabelle mit abzubilden. Im Bericht erscheinen seltsamerweise die berechneten DOMSUMME - Felder schneller als die normalen, nicht berechneten...

Woran liegt das?
Titel: Re: Abfrage optimieren
Beitrag von: ebs17 am Oktober 26, 2015, 12:35:37
Die Berechnung dieses Feldes scheint Reserven zu haben:
Format(Nz(DSum("Angebotspreis", "AbfrageDOMSUM", "Ausgabe='" & Val([Ausgabe]) - 1 & "-" & Mid([Ausgabe], 6) & "'" & " AND Magazinname='" & [Magazintitel] & "'" & " AND Vertragseingang<= format(dateadd('yyyy',-1,date()),'yyyy-mm-dd')" & "AND ID_Vertrieb=" & [ID_Vertrieb]), 0), "Currency") AS UmsatzVJ
- Abfrageinhalt?
- Datumsformatierung?
- Rumrechnerei an "Ausgabe"

Ansonsten: Gefilterte Felder sind indiziert?