Forum des Access-Tutorials

MAX() innerhalb einer Abfrage (Access)

Sven, Donnerstag, 14. Dezember 2017, 05:53 (vor 68 Tagen)

Hallo zusammen,

nach dem ich einiges an Zeit investiert habe will ich jetzt doch eure Hilfe anzapfen ;-)

Aufgabe aus einem Workshop:
Erstellen Sie eine Prozedur, mit der Sie – auf der Basis der Belegungsliste – den Mieter ermitteln, durch den die höchsten Mieteinnahmen erzielt wurden.
Stellen Sie gleichzeitig auch die Anzahl seiner Buchungen fest.
Zeigen Sie Name, Vorname, Ort, Mieteinnahmen und Anzahl der Buchungen für diesen Mieter mit einer Meldung wie der folgenden am Bildschirm an.

Aktueller Stand:
Auf Basis der Tabellen Mieter und Belegung habe ich eine Abfrage erstellt. Die funktioniert soweit auch.

SELECT Belegung.MieterNr, Mieter.Vorname, Mieter.Name, Mieter.Ort, COUNT(Belegung.Mietpreis) AS AnzahlBuchungen, SUM(Belegung.Mietpreis) AS Mieteinnahmen
FROM Belegung
INNER JOIN Mieter
ON Belegung.MieterNr = Mieter.MieterNr
GROUP BY Belegung.MieterNr, Mieter.Name, Mieter.Vorname, Mieter.Ort

Mein Problem:
Ich schaffe es nicht die Suche auf den Mieter mit den höhsten Mieteinnahmen einzuschränken. Bei der Verwendung von MAX() wird auch immer die Angabe einer Tabelle verlangt (meines Wissens). Aber es gibt ja keinen Tabellennamen, sondern nur das Ergebnis dieser Abfrage.:-(

Was ist der Fehler? Kann mir jemand helfen?

Danke im voraus, Sven

MAX() innerhalb einer Abfrage

Martin Asal, Donnerstag, 14. Dezember 2017, 08:25 (vor 68 Tagen) @ Sven

Hallo Sven,

ohne es jetzt ausprobiert zu haben, würde ich sagen: Fange an mit

SELECT TOP 1

um auf den ersten Datensatz zu beschränken. Und damit es auch der Richtige ist, sortierst du entsprechend:

ORDER BY Mieteinnahmen DESC

Martin

MAX() innerhalb einer Abfrage

Sven, Donnerstag, 14. Dezember 2017, 18:12 (vor 67 Tagen) @ Martin Asal

Hi Asal,

danke für deine Infos.

Es funktioniert jetzt. Die Sortierung musste ich aber realisieren über: ORDER BY Sum(Belegung.Mietpreis) DESC

SELECT TOP 1 Mieter.Name, Mieter.Vorname, Mieter.Ort, SUM(Belegung.Mietpreis) AS Mieteinnahmen, COUNT(*) AS [Anzahl von Belegung]
FROM Mieter INNER JOIN Belegung ON Mieter.[MieterNr] = Belegung.[MieterNr]
GROUP BY Mieter.Name, Mieter.Vorname, Mieter.Ort
ORDER BY SUM(Belegung.Mietpreis) DESC;


Nochmals danke und Gruß Sven :-)

MAX() innerhalb einer Abfrage

Sven, Donnerstag, 14. Dezember 2017, 18:15 (vor 67 Tagen) @ Martin Asal

Hi Martin, natürlich / Sorry!

RSS-Feed dieser Diskussion
RSS Einträge  RSS Threads   Kontakt
powered by my little forum