Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Liene am März 02, 2020, 12:50:18

Titel: Mitarbeit an Projekten
Beitrag von: Liene am März 02, 2020, 12:50:18
Hallo Hallo,
ich habe folgendes Problem. An verschiedenen Projekten werden jeden Tag verschiedene Mitarbeiter erfasst:

Projekt1: Tag1 :Paul
Projekt1: Tag2 :Paul
Projekt1: Tag2 :Egon
Projekt1: Tag2 :Paul
Projekt1: Tag2 :Franz
....

Projekt2: Tag1 :Paul
Projekt2: Tag2 :Egon
Projekt1: Tag2 :Klaus
Projekt1: Tag2 :Ulli
Projekt1: Tag3 :Franz
....

Ich möchte jetzt die Teilnahme der verschiedenen Mitarbeiter an allen Projekten ermitteln (unabhängig, wie viel Tage sie den  Projekten gearbeitet haben)
Ergebnis soll also sein:

Paul:   2 Projekte
Egon:  2 Projekte
Franz : 2 Projekt
Klaus:  1 Projekt
Ulli:     1 Projekt

Es gelingt mir nicht eine entsprechende Abfrage zu gestalten.
Für eine Hilfe wäre ich sehr dankbar
Gruß Liene
Titel: Re: Mitarbeit an Projekten
Beitrag von: Hondo am März 02, 2020, 13:29:39
Hallo,
wie sieht deine Tabelle bzw. Tabellen aus?
Ist mit einer einfachen Abfrage einfach machbar.
Gruß Andreas
Titel: Re: Mitarbeit an Projekten
Beitrag von: Liene am März 02, 2020, 13:40:30
Hallo,

die Abfrage mag einfach sein, ich bekomme sie aber nicht hin. Wenn ich die Projektnummer gruppiere und für die Mitarbeiter die Anzahl ausgeben lasse bekomme ich dann die Anzahl der Tage für die Mitarbeiter an

Gruß Liene
Titel: Re: Mitarbeit an Projekten
Beitrag von: Hondo am März 02, 2020, 14:02:08
Und meine Frage hättest du jetzt nicht auch beantworten können?
Wie sieht deine Tabelle(n) aus?
Titel: Re: Mitarbeit an Projekten
Beitrag von: Liene am März 02, 2020, 14:23:40
Hallo,

die Tabelle sieht aus wie oben dargestellt.
Die Abfrage habe ich nun doch hinbekommen:
SELECT Projektabrechnung.MNr, Projektabrechnung.Nachname AS Nachname, Count(Projektabrechnung.Nachname) AS Name
FROM Projektabrechnung
GROUP BY Projektabrechnung.MNr, Projektabrechnung.Nachname;


Vielen Dank und Gruß von Liene
Titel: Re: Mitarbeit an Projekten
Beitrag von: Beaker s.a. am März 02, 2020, 15:26:20
Hallo Liene,
Du solltest Andreas' Rat befolgen und uns das Beziehungsfenster zeigen.
Deine Daten sollten nämlich so aussehen
ProjektID Datum          MitarbeiterID
           1  01/02/2020                   1
           1   02/02/2020                  1
           1   02/02/2020                  2
usw.
Wobei je nach Datenmodell die beiden ID-Felder wohl Fremdschlüssel sein sollten.
Auf Namen zu gruppieren ist nicht gerade optimal.

gruss ekkehard
Titel: Re: Mitarbeit an Projekten
Beitrag von: Liene am März 02, 2020, 18:03:39
Hallo, meine Lösung war auch noch falsch
Die Tabelle:
PNr    Tag       MNR   Name
1   01.01.20    1     Paul
1   02.01.20    1     Paul
1   02.01.20    2     Egon
1   02.01.20    1     Paul
1   02.01.20    3     Franz
2   03.01.20    1     Paul
2   04.01.20    2     Egon
2   04.01.20    4     Klaus
2   04.01.20    5     Ulli
2   04.01.20    3     Franz

Hieraus will ich nun die Anzahl der Projekte für jeden Mitarbeiter bekommen.
Bekomme keine richtige Abfrage hin. also Paul Egon und Franz haben an 2 Projekte und Klaus und Ulli an ein Projekt gearbeitet
Mein Kenntnisse dazu reichen (noch) nicht aus

Ich bitte nochmal um Hilfe
Gruß Liene
Titel: Re: Mitarbeit an Projekten
Beitrag von: Hondo am März 02, 2020, 18:12:04
Hallo,
das ist keine Tabelle sondern Daten.
Tabelle besteht aus Feldnamen und Datentypen.
Ich mutmaße jetzt mal PNR (Long Integer), Tag (Date/Time), MNR (Long Integer), Name (Text 50)
1. Feldnamen wie Tag gehen gerade noch so, da Access auf Englisch denkt. Aber "Name" geht gar nicht. Das ist ein quasi geschützer Begriff den Access intern verwendet. Also umbenennen.
Deine Tabelle hat kein Primärschlüssel. Füge ein Feld "ID" ein Long Integer Autowert ein.
Wenn MNR die Mitarbeiternummer ist, dann brauchst du das Feld Name gar nicht. Aber statt dessen eine eigene Tabelle für Mitarbeiter (ID (Long Integer) Autowert, Mitarbeiter_Vorname (Text 50), Mitarbeiter_Nachname (Text 50), etc.
Und in den Beziehungen setzt zu dann zwischen ID dieser Tabelle und MNR der bestehenden Tabelle eine Beziehung.
Gruß Andreas

ZitatSELECT Projektabrechnung.MNr, Projektabrechnung.Nachname AS Nachname, Count(Projektabrechnung.Nachname) AS Name
FROM Projektabrechnung
GROUP BY Projektabrechnung.MNr, Projektabrechnung.Nachname;
Ich sehe bei deinen Daten nirgends das Feld "Nachname", wie heißt es nun?
Titel: Re: Mitarbeit an Projekten
Beitrag von: Liene am März 02, 2020, 18:32:49
Hallo, ja nun das ist keine Tabelle sondern sollen Beispielsdaten darstellen

PNr: Projektnummer; Long Integer
Tag: Arbeitstag; Datum/Uhrzeit
MNr: Mitarbeiternummer; Long Integer
Name: Bearbeiter; Text

Das meine dargestellte Lösung falsch ist hatte ich schon gesagt

Gruß Liene
Titel: Re: Mitarbeit an Projekten
Beitrag von: DF6GL am März 02, 2020, 19:18:07
Hallo,


kann mich nicht erinnern, bei Dir an Projekten mitgearbeitet zu haben...  ;D


ZitatHieraus will ich nun die Anzahl der Projekte für jeden Mitarbeiter bekommen

Select  [Vorname] as Mitarbeitername  , PNR as Projektnummer, Count(*) as AnzProjekte from tblDieTabelle  Group by [Vorname], PNR

oder evtl. auch:

Select  [Vorname] as Mitarbeitername  , Count(*) as AnzProjekte from tblDieTabelle  Group by [Vorname]

Auf "Name" als reserviertes Wort dringend verzichten!!
Titel: Re: Mitarbeit an Projekten
Beitrag von: Liene am März 02, 2020, 20:18:52
Hallo Franz,
wäre aber sehr froh, wenn Du an meinen Projekten mitarbeiten würdest :-)
Vielen herzlichen Dank für deine Lösung. Klappt natürlich super.
Und ich quäle mich hier mit 1000 unsinnigen Versionen und du schreibst mal locker eine kurze Lösung. Der Ausdruck AnzProjekte: Anzahl(*) ist mir nicht eingefallen.
Naja wärs eben kann !!!!

Herzliche Grüße von Liene

PS, natürlich ist Name nur so im Beispiel genannt