Hallo zusammen,
ich stehe gerade auf´m Schlauch.
Ich möchte gerne eine Abfrage, die später in einem gruppierten Bericht endet erstellen.
Diesen Code benutze ich zur Zeit. Allerdings enspricht das Ergebnis nicht meinen Vorstellungen.
SELECT tM.MonatName, t1.Einsatznummer AS HF1, t2.Einsatznummer AS HF2
FROM dbo_viewNichtErreichteHF1_ENR_monatlich AS t1 RIGHT JOIN (dbo_viewNichtErreichteHF2_ENR_monatlich AS t2 RIGHT JOIN dbo_tblMonateJanDez AS tM ON t2.MonatEinsatz = tM.MonateID) ON t1.MonatEinsatz = tM.MonateID
GROUP BY tM.MonatName, t1.Einsatznummer, t2.Einsatznummer;
Ich möchte gerne das die Einsatznummer bei HF2 als dritter Januareintrag hinzugefügt wird und nicht bei den anderen beiden Januareinträgen im HF2 Feld.
bild.png
Könnt ihr mir einen Tipp geben?
Grüße
Gruppierter Bericht <> gruppierte Abfrage ... wobei ich hier den Sinn einer Gruppierung noch nicht erfasst habe.
Wie das aussieht: Verwende eine UNION-Abfrage.
Hi,
habs ausprobiert, klappt auch nach meiner ersten Fragestellung.
ABER
ich habe vergessen zu erwähnen, dass eine Nummer die in HF1 steht, auch in HF2 stehen kann und diese dann auch in der selben Zeile stehen sollte... Damit klappt das mit UNION ALL leider nicht mehr so wie ich mir das gewünscht hatte.
bild.png
tM LEFT JOIN t1 über Monat, analog tM LEFT JOIN t2
Die beiden Abfragen joinst Du über Monat und HF.
Jetzt wäre nach Datenlage noch Vollständigkeit in HF zu beurteilen. Ein INNER JOIN oder einfacher OUTER JOIN wird es vmtl. nicht machen, so dass Du einen FULL OUTER JOIN brauchst, den es in Jet nicht gibt und der zusammengesetzt erstellt werden müsste.
So etwas Statisches wie gezeigt muss man aber auch nicht in Access zusammenbauen. Erstelle eine View im SQL Server und verknüpfe diese.
Hi,
ok da muss ich erstmal etwas lesen mit FULL OUTER JOIN.
Hallo,
nun klappt alles, vielen Dank für den OUTER JOIN Tipp.
SELECT
HF1.Einsatznummer AS EnrHF1, HF2.Einsatznummer AS EnrHF2, COALESCE (HF1.MonatEinsatz, HF2.MonatEinsatz) AS MonatsWert
FROM
dbo.viewNichtErreichteHF1_ENR_monatlich AS HF1
FULL OUTER JOIN
dbo.viewNichtErreichteHF2_ENR_monatlich AS HF2
ON HF1.Einsatznummer = HF2.Einsatznummer
Grüße