Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Lorei am Juni 22, 2017, 18:58:35

Titel: scheinbar einfach- Summieren aus zwei Tabellen
Beitrag von: Lorei am Juni 22, 2017, 18:58:35
Hallo Ihr Wissenden,
ein scheinbar sehr einfaches Problem blockiert mich und ich finde einfach keinen Ansatz.
In zwei Tabellen werden Aufwände je Monat erfasst. In jedem Monat kann es in beiden Tabellen mehrere Aufwandseinträge geben in unterschiedlicher Anzahl.
Jetzt sollen die Aufwände aus beiden Tabellen je Monat addiert werden. Abfrage erstellt, beide Tabellen über Monat verknüpft um dann je Monat summieren zu können. Aber welche Form der Verknüpfung ich auch wähle, im Datenblatt sind dann immer Aufwandswerte aus einer Tabelle mehrfach enthalten je nachdem wieviele Monatseinträge scheinbar in der anderen Tabelle eben mehr enthalten sind.
Es sollte einfach sein, aber man muss hier sicher einen Umweg gehen der mir einfach nicht aufgeht. Bin wie blockiert und hoffe, dass hier einer der erfahrenen Mitglieder sagt.. ist doch ganz einfach.
Würde mich sehr freuen.

Lorei
Titel: Re: scheinbar einfach- Summieren aus zwei Tabellen
Beitrag von: MzKlMu am Juni 22, 2017, 19:11:37
Hallo,
da kannst Du lange probieren, mit Verknüpfen ist das schlichtweg unmöglich. Hier musst Du mit einer Unionabfrage die beiden Tabellen zusammenführen.
Für Unionabfragen gibt es aber keinen Assi, da musst Du den SQL Code selbst erstellen.

Aber, wer in einer Datenbank Unionabfragen braucht, hat meist in der Struktur was falsch gemacht. Und da solltest Du ansetzen.

Warum sind das 2 Tabellen, wie unterscheiden diese sich ?
Titel: Re: scheinbar einfach- Summieren aus zwei Tabellen
Beitrag von: Lorei am Juni 22, 2017, 19:26:33
danke für das Mitdenken! Es sind gewachsene Tabellen in denen einmal Aufwände zu Projekten mit verschiedenen Aufwandsarten erfasst werden und - wie schon vermutet - kam später eine Tabelle hinzu, in der zusätzlich Personalaufwände zum Projekt gelistet werden. Beides je Jahr und je Monat. Das Jahr gleich zu setzen war ja kein Problem, aber die Verknüpfungen zum Monat sind scheinbar eine Sackgasse oder eben logisch falsch. Auch das Zwischenschalten weiterer Tabellen erbrachte nur Chaosdaten. Die Struktur ist leider nur schwer zu ändern und Unionsabfragen habe ich noch nicht gesehen. Gibt es dafür vielleicht Module die man nutzen kann?

Lorei
Titel: Re: scheinbar einfach- Summieren aus zwei Tabellen
Beitrag von: MzKlMu am Juni 22, 2017, 19:38:19
Hallo,
Du benötigst zwingend eine Unionabfrage. Mit Verknüpfungen kommst Du hier nicht zum Ziel. Es gibt auch kein Modul dazu. Module gibt es ohnehin nur in VBA nicht in SQL. Die Union musst Du selbst vollstaändig erstellen.
Das ganze ist auch nicht so einfach wie sich das für Dich zunächst darstellt.
Hier werden Datenbankuntypische Klimmzüge erforderlich (die Unionabfrage) die man normalerweise nicht benötigt.
Du musst auch bedenken, dass die Union die Feldnamen vereinheitlicht. Es werden die Feldnamen der 1.Tabelle verwendet.
Eine Union sieht vom Prinzip so aus:
Select Feldname1, Feldname2
From Tabellenname1
Union
Select Feldname1, Feldname2
From Tabellenname2


Die Union hat dann die Feldnamen der Tabelle1.

Hier kommen eventuell noch Kriterien ins Spiel.
Dies Unionabfrage wird dann Grundlage für die Auswerteabfrage.

Das Ganze ist Krampf, den man bei einem korrekten Aufbau der DB nicht benötigen würde. Die DB sollte man umstrukturieren.

Zeige mal den Aufbau der beiden Tabellen.

Titel: Re: scheinbar einfach- Summieren aus zwei Tabellen
Beitrag von: Lorei am Juni 22, 2017, 20:18:00
Das geht ja hier sehr fix! Ist scheinbar auch ein sehr reges Forum.
Die Tabellen sind eigentlich einfach, aber gut gefüllt und vielfach verknüpft bis hin zur Stundenerfassung. Und das alles neu zu strukturieren ginge sicher nicht so schnell.
Aufwand
ID   Projekt   Monat   Jahr   Aufwandsart   Aufwand
3   3   4   2017   FbT/ NU.   2.000,00 €
15   3   5   2017   Sachaufwand   3.463.636,00 €
16   4   5   2017   Sachaufwand   3.443.653,00 €

AufwandPersonalProjekt
ID   Monat   Jahr   PersonalName   Personalaufwand   Projekt
6   3   2015   2   33.543,00 €   2
7   5   2017   3   22.255,00 €   3
8   2   2017   4   53.356,00 €   4

Die Spaltenköpfe lassen sich hier in der Darstellung nicht richtig positionieren

Entstehen soll eine Tabelle oder Abfrage, die dann je Zeile einen der Aufwände enthält die man dann sicher auch leicht summieren kann.

Im Augenblick ensteht so etwas:
Aufwand.Monat   Aufwand   AufwandPersonalProjekt.Monat   Personalaufwand
10   5.225.255,00 €   10   775.757,00 €
10   5.225.255,00 €   10   7.744.444,00 €
10   5.225.255,00 €   10   5.255,00 €
3   35.656,00 €   3   33.543,00 €
3   35.656,00 €   3   4.444,00 €
3   35.656,00 €   3   242.442,00 €
3   35.656,00 €   3   244.242,00 €
3   35.656,00 €   3   325.355,00 €
3   35.656,00 €   3   566.233,00 €
6   64.365,00 €   6   76.588,00 €
6   64.365,00 €   6   654.378,00 €
6   64.365,00 €   6   4.455,00 €
6   64.365,00 €   6   3.535,00 €
6   64.365,00 €   6   453.355,00 €
10   224.244,00 €   10   775.757,00 €
10   224.244,00 €   10   7.744.444,00 €

So weit ich das erlesen konnte, werden die Felder unter einem Namen Aufwand dann zusammengeführt. Das wäre zur Erstellung einer Summierung je Monat über eine Gruppe zum Monat im Bericht und dessen Summierung je Monat ganz sicher eine Lösung.
Nach dem Code in der Antwort müsste ich ja auch nur die Monate und die Feldnamen Aufwand und Personalaufwand zusammenführen. Wo landet das dann? Kann das dann wie eine Abfrage referenziert werden und in einen Bericht gehen?

Lorei
Titel: Re: scheinbar einfach- Summieren aus zwei Tabellen
Beitrag von: MzKlMu am Juni 22, 2017, 21:50:59
Hallo,
ich wiederhole mich, Du brauchst eine Unionabfrage, die Beträge müssen in einer Spalte untereinander stehen, damit Du gruppieren und Summieren kannst.
Und eine solche Abfrage kann dann natürlich auch für den Bericht verwendet werden.
Titel: Re: scheinbar einfach- Summieren aus zwei Tabellen
Beitrag von: Lorei am Juni 23, 2017, 09:18:53
Besten Dank - ist ja eigentlich ganz einfach - man muss nur darauf kommen. Hat super geklappt

Lorei