napperman
Goto Top

Access 2 Abfragen zusammenbringen

Moin zusammen!

Irgendwie habe ich hier gerade ein Brett vorm Kopf.
Ich habe mehrere Tabellen in einer Datenbank. In einer stehen die Ist-Werte in einer anderen die Sollwerte.

Also:

Tabelle Ist-Werte mit Spalten
Materialnummer, Materialmenge, Projektnummer, Vorgangsnummer

Gleicher Aufbau bei Tabelle Sollwerte

Nun möchte ich als Abfrageergebnis gern haben

Istwerte.Materialnummer, Sollwerte.Materialnummer, Istwerte.Materialmenge, Sollwerte.Materialmenge, Projektnummer, Vorgangsnummer

Habe ne simple Abfrage mit innerjoin gebaut.
Allerdings habe ich dann bei Daten die nicht in Soll aufgeführt sind, aber im Ist das Problem, dass diese dann im Ergebniss mit den Solldaten versehen werden obwohl es ja keine gibt.

Beispiel:

In beiden Tabellen ein Projekt1 mit Vorgang1


Ist Tabelle Materialnummer M1 mit Menge 1
Soll Tabelle Materialnummer M1 mit Menge 1
Ist Tabelle Materialnummer M2 mit Menge 2

Dann ist das Ergebnis

Projekt Vorgang MaterialnummerSoll MaterialnummerIST SollMenge Istmenge
Projekt1 Vorgang1 M1 M1 1 1
Projekt1 Vorgang1 M1 M2 1 2

Ich möchte ja aber, dass dann in der zweiten Zeile bei Soll dann jeweils nichts reinschreibt...

Wo liegt mein Denkfehler.....

Screenshots

Content-ID: 162874

Url: https://administrator.de/contentid/162874

Ausgedruckt am: 25.11.2024 um 05:11 Uhr

ShitzOvran
ShitzOvran 17.03.2011 um 16:12:04 Uhr
Goto Top
Hast du evtl den Code deiner Qery.... ich bin leider noch nicht ganz durchgestiegen was du willst

ggf. nen screenshot. dem Aufbau deiner Tabellen zu folgen ist in deinem Textfluss nicht ganz einfach
napperman
napperman 17.03.2011 um 16:24:29 Uhr
Goto Top
Sorry ich versuche es nochmal:
Code ist folgender:

SELECT AbgangMaterialIst.projektnummer, AbgangMaterialIst.vorgangsnummer, AbgangMaterialIst.materialnummer AS Istmaterial, AbgangMaterialIst.anzahl AS Istmenge, AbgangMaterialSoll.nummer AS Sollmaterial, AbgangMaterialSoll.menge AS Sollmenge
FROM AbgangMaterialIst INNER JOIN AbgangMaterialSoll ON AbgangMaterialIst.vorgangsnummer = AbgangMaterialSoll.vorgangsnummer;

Jetzt muss ich erstmal gucken wie ich meine Screenshots hier rein bekommenface-wink


d42a0798febe047eb0bc6248f626b7e7
a34108d995d02f224a48f0b4ceeb9d38

So, hier die Screenshots.
Im Ergebnis möchte ich halt, dass bei Sollmenge oder Istmenge und Nummer jeweils nichts steht, wenn da in der jeweiligen Tabelle keine Eintrag vorhanden ist.
Gut zu sehen im 2. Screenshot. Die Felder im roten "Kreis" sollten eigentlich leer sein.
76109
76109 17.03.2011 um 16:24:31 Uhr
Goto Top
Hallo napperman!

Vielleicht in etwa so:
SELECT IstTabelle.Projektnummer, IstTabelle.Vorgangsnummer, SollTabelle.Materialnummer, IstTabelle.Materialnummer, SollTabelle.Materialmenge, IstTabelle.Materialmenge
FROM IstTabelle INNER JOIN SollTabelle ON (IstTabelle.Materialnummer = SollTabelle.Materialnummer) AND (IstTabelle.Projektnummer = SollTabelle.Projektnummer) AND (IstTabelle.Vorgangsnummer = SollTabelle.Vorgangsnummer);

Gruß Dieter
bastla
bastla 17.03.2011 um 16:32:37 Uhr
Goto Top
Hallo napperman!

Ich hätte angenommen, Du wolltest einen "LEFT JOIN" zwischen Ist- und Soll-Tabelle ...

Grüße
bastla
napperman
napperman 17.03.2011 um 16:43:26 Uhr
Goto Top
Hallo bastla!

Dann bekommen ich ja alles was in der im Soll nicht vorhanden ist auch nicht angezeigt. Allerdings muss ich dann wohl das gleiche nochmal mit einem RIGHT JOIN machen, damit es auch für den umgekehrten Fall klappt.
Und hinterher den ganzen Kram wieder zusammenfügen. Na, mal sehen. Habe aber mit Eurer Hilfe noch ein paar Ideen bekommen...

Danke