Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Thomas1970 am März 23, 2011, 10:41:32

Titel: MS Access 3 Gleichförmige Abfragen in eine zusammenfassen
Beitrag von: Thomas1970 am März 23, 2011, 10:41:32
Hallo Leute,
ich versuche ein wenig auszuholen um mein Problem zu beschreiben

Ich habe eine große (nicht normalisierte!) Tabelle mit Adressdaten (Personen, Dienststelle, Admins usw).

Beispiel:

ID   bezeichnung   Amt   admin   angeschrieben   antwort
1   Person 1   1   N   0   0
2   Person 2   2   N   0   0
3   Person 3   3   J   0   0
4   Person 4   1   J   0   0
5   Person 5   1   J   0   0
6   Person 6   2   N   1   0
7   Person 7   4   N   1   0
8   Person 8   3   N   1   0
9   Person 9   2   N   1   0
10   Person 10   2   N   1   0
11   Person 11   1   N   1   1
12   Person 12   4   J   1   0
13   Person 13   3   J   1   0
14   Person 14   2   J   1   1
15   Person 15   1   J   1   0
16   Person 16   1   J   1   1

Nun möchte ich mir ausgaben wieviele Admins und wieviele Normaluser es pro Amt gibt.


SELECT Tabelle1.Amt, Tabelle1.admin, Count(Tabelle1.angeschrieben) AS Anzahlvonangeschrieben
FROM Tabelle1
GROUP BY Tabelle1.Amt, Tabelle1.admin;


Ergebnis
Amt   admin   Anzahl
1   J   4
1   N   2
2   J   1
2   N   4
3   J   2
3   N   1
4   J   1
4   N   1

Darüber hinaus möchte ich die Anzahl der Leute pro Amt (unterscheidung auch wieder Admin ja/nein) die angeschrieben wurde.

SELECT Tabelle1.Amt, Tabelle1.admin, Count(Tabelle1.angeschrieben) AS Anzahlvonangeschrieben
FROM Tabelle1
GROUP BY Tabelle1.Amt, Tabelle1.admin, Tabelle1.angeschrieben
HAVING (((Tabelle1.angeschrieben)=1));


Ergebnis
Amt   admin   Anzahlvonangeschrieben
1   J   2
1   N   1
2   J   1
2   N   3
3   J   1
3   N   1
4   J   1
4   N   1

Und wieviele Antworten ich bekommen habe

SELECT Tabelle1.Amt, Tabelle1.admin, Count(Tabelle1.antwort) AS Anzahlvonantwort
FROM Tabelle1
GROUP BY Tabelle1.Amt, Tabelle1.admin, Tabelle1.antwort
HAVING (((Tabelle1.antwort)=1));


Ergebnis
Amt   admin   Anzahlvonantwort
1   J   1
1   N   1
2   J   1

Das stimmt bis hier auch alles.

Aber: Das endgültige Ergebnis möchte ich in eine Abfrage haben die ich dann exportieren kann.

Ziel:
Amt   admin   alle.Anzahlvonangeschrieben   Anzahlvonantwort   angeschrieben.Anzahlvonangeschrieben


Ich habe mir eine neue Abfrage gemacht, die 3 Abfragen als Grundlage genommen und ausgehend von der "Gesamt" Abfrage (die ja die größte Datenmenge beinhaltet) die anderen 2 Abfragen (angeschrieben, antwort) mit einen Left Join verbunden

SELECT alle.Amt, alle.admin, alle.Anzahlvonangeschrieben, antwort.Anzahlvonantwort, angeschrieben.Anzahlvonangeschrieben
FROM (alle LEFT JOIN antwort ON (alle.Amt = antwort.Amt) AND (alle.admin = antwort.admin)) LEFT JOIN angeschrieben ON (alle.Amt = angeschrieben.Amt) AND (alle.admin = angeschrieben.admin)
GROUP BY alle.Amt, alle.admin, alle.Anzahlvonangeschrieben, antwort.Anzahlvonantwort, angeschrieben.Anzahlvonangeschrieben;



Das Ergebnis der letzten 2 Spalten ist aber nicht korrekt, er gibt mir nur in einigen Feldern den Wert 1 an und ich hab keine ahnung warum

Amt   admin   alle.Anzahlvonangeschrieben   Anzahlvonantwort   angeschrieben.Anzahlvonangeschrieben
1   J   4   1   
1   N   2   1   
2   J   1   1   1
2   N   4      
3   J   2      
3   N   1      1
4   J   1      1
4   N   1      1



Ich frage mich nun warum die "gesamt" Abfrage stimmt, die 2 angebundenen Abfragen aber nicht gehen.

Hat jemand von euch einen Hinweis?

Viele Grüße
Thomas
Titel: Re: MS Access 3 Gleichförmige Abfragen in eine zusammenfassen
Beitrag von: oma am März 23, 2011, 19:54:07
Hallo Thomas,

wenn du nur die Summe der Anschreiben bzw. der Antworten der einzelnen Admins von den verschiedenen Ämtern haben willst, ist das mit einer Abfrage zu realisieren:

SELECT Amt, Admin,
DCount("*","tblAdressdaten","Angeschrieben='1'" & " AND Amt='" & [Amt] & "'" & " AND Admin='" & [Admin] & "'") AS Anschreiben,
DCount("*","tblAdressdaten","Antwort='1'" & " AND Amt='" & [Amt] & "'" & " AND Admin='" & [Admin] & "'") AS Antworten
FROM tblAdressdaten
GROUP BY Amt, Admin


oder willst du die Anzahl der Anschreiben, die nicht beantwortet sind?

Gruß Oma