Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

MS Access 3 Gleichförmige Abfragen in eine zusammenfassen

Begonnen von Thomas1970, März 23, 2011, 10:41:32

⏪ vorheriges - nächstes ⏩

Thomas1970

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

oma

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
nichts ist fertig!