Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Xoar am April 27, 2022, 14:29:10

Titel: Darstellung der Abfrage
Beitrag von: Xoar am April 27, 2022, 14:29:10
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
Titel: Re: Darstellung der Abfrage
Beitrag von: ebs17 am April 27, 2022, 15:29:07
Gruppierter Bericht <> gruppierte Abfrage ... wobei ich hier den Sinn einer Gruppierung noch nicht erfasst habe.

Wie das aussieht: Verwende eine UNION-Abfrage.
Titel: Re: Darstellung der Abfrage
Beitrag von: Xoar am April 27, 2022, 17:32:13
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
Titel: Re: Darstellung der Abfrage
Beitrag von: ebs17 am April 27, 2022, 18:53:22
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.
Titel: Re: Darstellung der Abfrage
Beitrag von: Xoar am April 27, 2022, 20:22:15
Hi,

ok da muss ich erstmal etwas lesen mit FULL OUTER JOIN.

Titel: Re: Darstellung der Abfrage
Beitrag von: Xoar am April 28, 2022, 07:19:15
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