online 1
gast (50)

/ Forum / Datenbanken

DatenbankenDatenbanken

Fragevon DCAH vom 22.01.2019, 10:21 Options

ACCESS Problem mit Aggregatfunktion

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 schreiben

Antwort 1 von erik vom 22.01.2019, 10:52 Options

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

Antwort 2 von DCAH vom 22.01.2019, 10:59 Options

@ 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.

Antwort 3 von Teddy7 vom 22.01.2019, 11:21 Options

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

Antwort 4 von erik vom 22.01.2019, 13:17 Options

Zitat:
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 vom 22.01.2019, 13:26 Options

@ 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?

Antwort 6 von erik vom 22.01.2019, 17:21 Options

Hmm, mir fällt momentan nichts Passendes dazu ein und muss mich hier erstmal ausklinken. :-/

Antwort 7 von DCAH vom 23.01.2019, 09:03 Options

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!!

Ähnliche Themen

Access schließt sich automatisch
Reozeel  22.06.2007 - 189 Hits - 6 Antworten

Access, import Access-Tabellen
KRD  02.09.2007 - 265 Hits - 1 Antwort

Problem mit word, excel ,access ( 2002 )
senator  29.10.2007 - 148 Hits - 1 Antwort

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026