Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: huith am Juli 26, 2023, 17:41:14

Titel: Abfrage mit Funktionen aus bestehender Abfrage
Beitrag von: huith am Juli 26, 2023, 17:41:14
Hallo zusammen,
ich habe folgendes Problem:
In einer Abfrage werden die Felder PersonID, FachID, LeistungstypID und Durchschnitt der Leistungen aufgelistet
CODE:
SELECT tblLeistungsnachweis.FachID AS FachID, tblLeistungsnachweis.LeistungstypID AS LTID, tblNoten.PersonID AS PersonID, Count(tblNoten.Note) AS Anzahl, Avg(tblNoten.Note) AS MittelLT
FROM tblLeistungsnachweis LEFT JOIN tblNoten ON tblLeistungsnachweis.LeistungsnachweisID = tblNoten.ArbeitID
WHERE (((Nz([Note],0))>0))
GROUP BY tblLeistungsnachweis.FachID, tblLeistungsnachweis.LeistungstypID, tblNoten.PersonID;

Das Ergebnis wird korrekt angezeigt.
Jetzt möchte ich eine erneute Abfrage erstellen, die mir die Summe bzw. die Mittelwerte aller LTID der zugrundeliegenden Abfrage gruppiert über FachID und PersonID liefert.
Das funktioniert leider nicht. Wo habe ich da einen gedanklichen Knoten oder ist es grundsätzlich nicht möglich, eine Aggregatfunktion auf das Ergebnis einer Abfrage mit Agregatfunktion anzuwenden?

Danke für Tipps!
Gruß Michael
Titel: Re: Abfrage mit Funktionen aus bestehender Abfrage
Beitrag von: ebs17 am Juli 27, 2023, 08:45:44
Zitatoder ist es grundsätzlich nicht möglich, eine Aggregatfunktion auf das Ergebnis einer Abfrage mit Agregatfunktion anzuwenden?
Auswahlabfrage auf Auswahlabfrage ist immer möglich.

Zu Deiner ersten Abfrage: Der OUTER JOIN macht keinen Sinn, wird zudem durch die WHERE-Klausel aufgehoben:
SELECT
   L.FachID AS FachID,
   L.LeistungstypID AS LTID,
   N.PersonID AS PersonID,
   COUNT(N.Note) AS Anzahl,
   AVG(N.Note) AS MittelLT
FROM
   tblLeistungsnachweis AS L
      INNER JOIN tblNoten AS N
      ON L.LeistungsnachweisID = N.ArbeitID
GROUP BY
   L.FachID,
   L.LeistungstypID,
   N.PersonID
Note > 0 ... oder gibt es bei Dir 0-Noten und negative Noten?

ZitatSumme bzw. die Mittelwerte aller LTID
Würde man nicht eher die gleiche Abfrage verwenden, aber dabei L.LeistungstypID entfernen, also die Gruppierung reduzieren?
Titel: Re: Abfrage mit Funktionen aus bestehender Abfrage
Beitrag von: huith am Juli 27, 2023, 11:04:27
Vielen Dank für die schnelle Antwort.
Das Zusammenfassen über die Leistungstypen geht leider nicht.
Die Leistungstypen haben ein weiteres Merkmal, das ich in der Darstellung versehetlich weggelassen habe. Das zusätzliche Merkmal ist Jahresfortgang und lautet für die Leistungstypen 1 bis 3 JA und bei allen anderen NEIN. Zur weiteren Verrechnung werden die Leistungstypen 1 bis 3 (=JA) mit einem bestimmten Faktor gewichtet und der so ermittelte Wert für den Jahresfortgang geht wiederum mit einem Gewichtungsfaktor zusammen mit den weiteren Leistungstypen (NEIN) in ein Endergebnis für das Fach und die Person ein. D.h. ich brauche dieses Zwischenergebnis für den Jahresfortgang.
Titel: Re: Abfrage mit Funktionen aus bestehender Abfrage
Beitrag von: ebs17 am Juli 27, 2023, 13:33:02
werden die Leistungstypen 1 bis 3 (=JA) mit einem bestimmten Faktor gewichtet Dann tue das. Das "alle" war wohl nicht so gemeint.