Hi,
ich habe eine (eigentlich sehr simple) Tabelle mit drei Spalten "MEMBER_ID", "COURSE_ID" und "PART_DATE":
Aus dieser Tabelle möchte ich jetzt pro Member herauslesen, wie oft das Mitglied welchen Kurs in einem bestimmten Zeitraum besucht hat:
Die Fragezeichen werden mit den jeweiligen Anfangs- bzw Enddaten des fraglichen Zeitraums ersetzt. Leider quittiert Derby mir diese Anfrage mit folgender Exception:
Wie muß meine Anfrage denn dann richtig lauten? Und warum bekomme ich diesen Fehler?
mpG
Tobias
ich habe eine (eigentlich sehr simple) Tabelle mit drei Spalten "MEMBER_ID", "COURSE_ID" und "PART_DATE":
SQL:
CREATE table APP.PARTICIPATION
(MEMBER_ID INTEGER CONSTRAINT member_fk REFERENCES MEMBERS(ID),
COURSE_ID INTEGER CONSTRAINT course_fk REFERENCES COURSES(ID),
PART_DATE DATE)
Aus dieser Tabelle möchte ich jetzt pro Member herauslesen, wie oft das Mitglied welchen Kurs in einem bestimmten Zeitraum besucht hat:
SQL:
SELECT COUNT(DISTINCT COURSE_ID) AS PART_COURSE, COURSE_ID, MEMBER_ID
FROM PARTICIPATION
WHERE PART_DATE >= ? AND PART_DATE <= ?
GROUP BY MEMBER_ID
Die Fragezeichen werden mit den jeweiligen Anfangs- bzw Enddaten des fraglichen Zeitraums ersetzt. Leider quittiert Derby mir diese Anfrage mit folgender Exception:
ERROR 42Y36: Column reference 'COURSE_ID' is invalid, or is part of an invalid expression. For a SELECT list with a GROUP BY, the columns and expressions being selected may only contain valid grouping expressions and valid aggregate expressions.
Wie muß meine Anfrage denn dann richtig lauten? Und warum bekomme ich diesen Fehler?
mpG
Tobias