Problem bei einer Abfrage

aro69

Mitglied
Hallo Leute,

Ich bin gerade dabei ein Datenbank in Access2000 für Mitgliederverwaltung eines Förderkreises zuerstellen.

Ich möchte gern eine Abfrage in SQL zusammenbasteln. Es soll die Mitglieder auflistet, die kein Beitrag bezahlt haben.

Dafür hab ich diese SQL-Abfrage gemacht, aber es zeigt mir die Mitglieder die ein Beitrag bezahlt haben, also das gegenteil will ich erreichen.

SELECT M.Anrede, M.Name, M.Vorname, M.Semester, M.Schulform, M.Schulungsjahr, Year(M.Eintrittsdatum) AS Eintrittsjahr
FROM Mitglieder AS M INNER JOIN Beiträge AS B ON M.Mitgl_Nr=B.Mitgl_Nr
GROUP BY M.Anrede, M.Name, M.Vorname, M.Semester, M.Schulform, M.Schulungsjahr, Year(M.Eintrittsdatum), B.Beitrag_für_das_Jahr, Year(M.Eintrittsdatum)
HAVING (((B.Beitrag_für_das_Jahr)=[Welches Jahr]) And ((Year(M.Eintrittsdatum))<=B.Beitrag_für_das_Jahr));

Was muss ich dabei ändern?:confused:

Danke im vorraus für Eure antworten
 
Hallo,

Mit den inner join usw. hab ich es ja nicht so, aber auf den ersten Blick fragst du ja direkt nach den Mitgliedern, die bezahlt haben.
die Zeile Having .. B.Beitrag_für_das_Jahr)=[Welches Jahr]) ... müsste doch verneint werden. Also statt ein Gleichheitszeichen solltest du da nicht ein ungleich einsetzen?:confused:
 
Hallo,

versuch es 'mal mit folgendem Statement:

SELECT M.Anrede
, M.Name
, M.Vorname
, M.Semester
, M.Schulform
, M.Schulungsjahr
, Year(M.Eintrittsdatum) AS Eintrittsjahr
FROM Mitglieder AS M
WHERE Year(M.Eintrittsdatum) <= [Welches Jahr]
AND NOT EXISTS ( SELECT 1
FROM beiträge b
WHERE b.Mitgl_Nr = M.Mitgl_Nr
AND b.Beitrag_für_das_Jahr = [Welches Jahr]
);

Viele Grüße Berit.
 
Zurück