Leute. Ich kann keine Antwort auf dieses Problem finden. Ich kann es in SQL Server tun, aber ich arbeite jetzt mit Access 2013 und meine üblichen SQL-Tricks scheinen nicht zu funktionieren.Summierung von Summen aus mehreren Tabellen in MS Access
Ich muss einen Klassenkosten v. Umsatzzusammenfassung Bericht erstellen.
Ich habe drei Tabellen: Klassenliste, Kostenliste, Registrierungsliste. Die Kosten und Registrierungen (Kosten & Umsatz) sind beide an die Klassenliste gebunden durch ein Schlüsselfeld, das diese Klasse für alle Tabellen identifiziert.
Ich kann einen Kostenbericht oder einen Umsatzbericht erstellen und die Summen für jede Klasse sind in Ordnung, aber wenn ich sie kombinieren, um das Netz für jede Klasse zu erhalten, werden die Kosten mit der Anzahl der Zeilen in der Registrierung multipliziert Bericht und umgekehrt.
Ich habe versucht, Outer Join verwenden, aber der Zugriff mag es nicht, auch mit der [] an der richtigen Stelle. Es wäre besser, dies im Zugriff zu behalten, da sich der Weg von der Excel-Version entfernt.
Hier ist die SQL hinter den schlechten Ergebnissen. Ich weiß, dass diese Joins falsch sind, aber ich kann keine anderen Joins annehmen.
SELECT DISTINCTROW Classes.ID,
Classes.Title,
Classes.Instructor,
Classes.Date,
Sum(Costs.Amount) AS [Sum Of Amount],
Sum(Registrations.Tuition) AS [Sum Of Tuition],
Count(*) AS [Count Of Classes]
FROM (Classes
LEFT JOIN Registrations ON Classes.[ID] = Registrations.[Class ID])
LEFT JOIN Costs ON Classes.[ID] = Costs.[Class ID]
GROUP BY Classes.ID,
Classes.Title,
Classes.Instructor,
Classes.Date;
Irgendwelche Vorschläge? Danke im Voraus.
Erstellen Sie eine Gesamtabfrage für Kosten und eine Gesamtabfrage für Umsatz, und verbinden Sie dann die zwei Sammelabfragen zur Klassenlistentabelle. – June7
Willkommen bei SO. Zuallererst, siehe [LINKE und RECHTE JOIN-Operationen] (https://support.office.com/de-de/article/LEFT-JOIN-RIGHT-JOIN-Operations-ebb18b36-7976-4c6e-9ea1-c701e9f7f5fb). Die SQL-Syntax, einschließlich JOIN-Schlüsselwörtern, ist nicht identisch mit SQL Server. –
Sie erwähnen "SQL-Tricks", "jede andere Art von Join" und die Möglichkeit, "es in SQL Server zu tun". Wenn Sie solche Dinge ausprobiert haben oder wenn Sie denken, dass eine andere Syntax woanders funktioniert, kann es sich lohnen, solche Beispiele mit aufzunehmen, anstatt sie nur zu erwähnen. Das kann nicht nur etwas bieten, mit dem man arbeiten kann, sondern auch Details aufdecken, die vielleicht nicht in Worten auftauchen. Ich sehe nicht, wie eine Join oder Syntax Sie eine einzelne Abfrage ausführen lassen würde, um Aggregate über verschiedene Tabellen zu erhalten. Auch wenn es sich um Unterabfragen handelt, müssen Sie die Kosten und die Studiengebühren separat zusammenfassen. –