Supportnet / Forum / Datenbanken
ACCESS Problem mit Aggregatfunktion
Frage
Hallo zusammen,
ich habe folgendes Problem:
Für eine Tabelle, die in der Währung HUF (Ungarischer Forint) erfasst ist, soll eine Abfrage sowohl in HUF als auch in EUR möglich sein. Die Wechselkurse habe ich als separate Tabelle erfasst.
Ich habe in der betreffenden Abfrage nun den Ausdruck:
EUR Brutto: [Kosten Brutto]/[Wechselkurse]![Kurs EUR/HUF]
eingegeben. Die Bruttoksten in HUF sollen also simpel durch den Wechselkurs geteilt werden. Leider erscheint die Fehlemeldung:
Sie wollten eine Abfrage ausführen, die den angegebenen Ausdruck [Kosten Brutto]/[Wechselkurse]![Kurs EUR/HUF]
nicht als Teil der Aggregatfunktion einschließt. (Fehler 3122)
Was tun? Es hat wohl irgendwas mit der TRANSFORM Anweisung in SQL zu tun.
Wenns hilft, hier der SQL-Code der Abfrage:
SELECT Festnetz.Kostenstelle, Sum(Festnetzrechung.Summe) AS [Kosten Netto], [Kosten Netto]*1.2 AS [Kosten Brutto], Sum([Festnetzrechung]![Summe]*1.2*[Festnetzrechung]![Multiplikator]) AS [Absetzbarer VAT], [Kosten Brutto]/[Wechselkurse]![Kurs EUR/HUF] AS [EUR Brutto]
FROM Wechselkurse INNER JOIN (Festnetz RIGHT JOIN Festnetzrechung ON Festnetz.Telefonnummer = Festnetzrechung.Anschluss) ON Wechselkurse.Monat = Festnetzrechung.Monat
WHERE (((Festnetzrechung.Monat) Between [Formulare]![Report Assistent]![Datum] And [Formulare]![Report Assistent]![Enddatum]))
GROUP BY Festnetz.Kostenstelle;
Hilfe dringend erbeten!!
Viele Grüße aus Budapest!
Antwort 1 von erik
Hallo!
Die SQL-Anweisung ist keine Kreuztabelle, das Schlüsselwort TRANSFORM usw. fehlt. Da die Fehlermeldung von der Kreuztabelle selbst stammen muss, wäre deren SQL hier hilfreicher. Vielleicht hilft es aber schon, wenn du die betroffene Spalte in der Gruppierungseinstellung auf "Erster Wert" stellst.
Ist dir schon mal aufgefallen, dass deine Festnetzrechnung falsch geschrieben ist? :-)
Gruß
erik
Die SQL-Anweisung ist keine Kreuztabelle, das Schlüsselwort TRANSFORM usw. fehlt. Da die Fehlermeldung von der Kreuztabelle selbst stammen muss, wäre deren SQL hier hilfreicher. Vielleicht hilft es aber schon, wenn du die betroffene Spalte in der Gruppierungseinstellung auf "Erster Wert" stellst.
Ist dir schon mal aufgefallen, dass deine Festnetzrechnung falsch geschrieben ist? :-)
Gruß
erik
Antwort 2 von DCAH
@ erik:
Danke für die Antwort. Das mit dem ersten Wert funktioniert nicht. Was ich nicht so ganz verstehe, was hat das ganze mit einer Kreuztabelle zu tun? Das soll eine normale Auswahlabfrage sein. Warum stammt die Fehlermeldung also aus einer Kreuztabelle?
Danke für den hinweis mit der Rechtschreibung. Ist mir auch schon aufgefallen. Die Tabelle ist aber schon länger hier im System und um keine Fehlverknüpfngen zu riskieren lasse ich den namen so.
Danke für die Antwort. Das mit dem ersten Wert funktioniert nicht. Was ich nicht so ganz verstehe, was hat das ganze mit einer Kreuztabelle zu tun? Das soll eine normale Auswahlabfrage sein. Warum stammt die Fehlermeldung also aus einer Kreuztabelle?
Danke für den hinweis mit der Rechtschreibung. Ist mir auch schon aufgefallen. Die Tabelle ist aber schon länger hier im System und um keine Fehlverknüpfngen zu riskieren lasse ich den namen so.
Antwort 3 von Teddy7
Du hast eine Abfrage, in der die Werte je Kostenstelle zusammengefaßt werden.
Mach eine neue Abfrage über alle Felder dieser Abfrage und bau in diese neue Abfrage Deine Umrechnung ein.
Gruß
Teddy
Mach eine neue Abfrage über alle Felder dieser Abfrage und bau in diese neue Abfrage Deine Umrechnung ein.
Gruß
Teddy
Antwort 4 von erik
Zitat:
Es hat wohl irgendwas mit der TRANSFORM Anweisung in SQL zu tun.
Es hat wohl irgendwas mit der TRANSFORM Anweisung in SQL zu tun.
Wenn du TRANSFORM erwähnst, dann muss ich unmittelbar an eine Kreuztabelle denken, weil das das SQL-Schlüsselwort dafür ist. Ich habe dich wohl falsch verstanden.
Du hast in deiner Abfrage vier Felder in der Ausgabe. Feld 1 wird gruppiert, Feld 2 und Feld 3 werden summiert. Mit dem vierten Feld passiert gar nichts, weder Summe, Gruppierung usw. Das darf nicht sein, hier muss irgendetwas aus der Gruppierungs-Themenbereich passieren. Theoretisch müsstest du hier "Erster Wert" eintragen können oder du gruppierst die Berechnung (nicht den Alias-Namen!)
Beispiele (die vielleicht funktionieren):
SELECT Festnetz.Kostenstelle, Sum(Festnetzrechung.Summe) AS [Kosten Netto], [Kosten Netto]*1.2 AS [Kosten Brutto], Sum([Festnetzrechung]![Summe]*1.2*[Festnetzrechung]![Multiplikator]) AS [Absetzbarer VAT], First([Kosten Brutto]/[Wechselkurse]![Kurs EUR/HUF]) AS [EUR Brutto]
FROM Wechselkurse INNER JOIN (Festnetz RIGHT JOIN Festnetzrechung ON Festnetz.Telefonnummer = Festnetzrechung.Anschluss) ON Wechselkurse.Monat = Festnetzrechung.Monat
WHERE (((Festnetzrechung.Monat) Between [Formulare]![Report Assistent]![Datum] And [Formulare]![Report Assistent]![Enddatum]))
GROUP BY Festnetz.Kostenstelle;
SELECT Festnetz.Kostenstelle, Sum(Festnetzrechung.Summe) AS [Kosten Netto], [Kosten Netto]*1.2 AS [Kosten Brutto], Sum([Festnetzrechung]![Summe]*1.2*[Festnetzrechung]![Multiplikator]) AS [Absetzbarer VAT], [Kosten Brutto]/[Wechselkurse]![Kurs EUR/HUF] AS [EUR Brutto]
FROM Wechselkurse INNER JOIN (Festnetz RIGHT JOIN Festnetzrechung ON Festnetz.Telefonnummer = Festnetzrechung.Anschluss) ON Wechselkurse.Monat = Festnetzrechung.Monat
WHERE (((Festnetzrechung.Monat) Between [Formulare]![Report Assistent]![Datum] And [Formulare]![Report Assistent]![Enddatum]))
GROUP BY Festnetz.Kostenstelle, [Kosten Brutto]/[Wechselkurse]![Kurs EUR/HUF];
Antwort 5 von DCAH
@ erik:
Danke für die Ansätze.
Beim ersten Vorschlag erscheint die Fehlermeldung: Unterabfragen können im Ausdruck ... nicht verwendet werden.
Beim 2. Vorschlag erscheint, dass der eingegebene AUsdruck als Abfrage nicht als Teil der Aggregatfunktion einschließt.
Woran kanns liegen? In der Tabelle mit den Wechselkursen werden pro monat die jeweiligen durchschn. Kurse angezeigt?
Hast Du sonst eine Idee, wie ich die für den jeweiligen Monat korrekten Wechselkurse miteinbringen kann?
Danke für die Ansätze.
Beim ersten Vorschlag erscheint die Fehlermeldung: Unterabfragen können im Ausdruck ... nicht verwendet werden.
Beim 2. Vorschlag erscheint, dass der eingegebene AUsdruck als Abfrage nicht als Teil der Aggregatfunktion einschließt.
Woran kanns liegen? In der Tabelle mit den Wechselkursen werden pro monat die jeweiligen durchschn. Kurse angezeigt?
Hast Du sonst eine Idee, wie ich die für den jeweiligen Monat korrekten Wechselkurse miteinbringen kann?
Antwort 6 von erik
Hmm, mir fällt momentan nichts Passendes dazu ein und muss mich hier erstmal ausklinken. :-/
Antwort 7 von DCAH
Alles klar.
Problem hat sich erledigt. Habs durch rumprobieren selber gelöst. Weiß allerdings nicht genau wie, aber es klappt gut.
Trotzdem vielen Dankl für die hilfe!!
Problem hat sich erledigt. Habs durch rumprobieren selber gelöst. Weiß allerdings nicht genau wie, aber es klappt gut.
Trotzdem vielen Dankl für die hilfe!!

