2016-05-21 8 views
0

I Verwendung zählt Funktion ist diese SQL-Abfrage von Daten aus einer Access-DatenbankWie eine beitreten, indem sie mit Gruppeninnen verwenden oder

SELECT Absence.date_, stages.name, course.course_name, student.name AS st_name 
FROM (((Absence INNER JOIN course ON Absence.course_id = course.ID) 
INNER JOIN  stages ON course.id_stage = stages.ID) 
INNER JOIN  student ON Absence.student_id = student.ID AND stages.ID = student.stage_id` 

zu holen, wenn ich das Feld Gruppe gewohnt oder Anzahl von Feld es zeigen bekommen mir diese Fehlermeldung

versucht, eine Abfrage auszuführen, die nicht den angegebenen Ausdruck ‚Absence.date_‘ als Teil einer Aggregatfunktion

enthält

Wie bekomme ich die Nummer der Zeile, es verschieden von ST_name und Gruppe von Künstlernamen oder Kursname

Antwort

1

Für die Zählung bekommen sollten Sie

SELECT Absence.date_, stages.name, course.course_name, student.name AS st_name, count(*) 
FROM (((Absence INNER JOIN course ON Absence.course_id = course.ID) 
INNER JOIN  stages ON course.id_stage = stages.ID) 
INNER JOIN  student ON Absence.student_id = student.ID AND stages.ID = student.stage_id 
GROUP BY Absence.date_, stages.name, course.course_name, student.name 
+0

es zeigen diese Nachricht Syntaxfehler in from Klauseln ich versuche, diese Zitate zu entfernen student.stage_id zu student.stage_id –

+0

Ja gab es einen Tippfehler Zitate entfernt .. Ich habe die Antwort aktualisieren. Suchst du danach ? – scaisEdge

+0

Ihre SQL-Abfrage ist Arbeit ok, aber wenn ich die Anzahl (*) hinzufügen, zeigen Sie mir diese Fehlermeldung "IErroInfo.GetDescription fehlgeschlagen mit E_FAIL (0 × 80004005)" –

-1

verwenden Welche Tabelle das Feld „Absence.date_“ enthält ? Und Sie müssen nicht "Inner" (oder Natural für diese Angelegenheit) angeben.

Bei der Verwendung von Aggregatfunktionen (Count(), Sum(), ect) muss Ihre Gruppe nach dieselbe Liste von Feldern enthalten wie Ihre select-Anweisung. Und dieser Fehler besagt, dass entweder Abwesenheit.date_ nicht als Feld in einer der Tabellen in der Klausel from existiert. Sie haben jedoch keine Group By-Anweisung in Ihrer Abfrage.

+0

Typ zu Absence.date_ Feld ist das Datum und ich wurde nicht inner zu diesem Feld verwendet Ich schneide diese Abfrage aus Abfrage-Generator in Database2DataSet.xsd –

+0

im normalen Zustand ohne Gruppe von Anweisung oder Anzahl func - mir keinen Fehler zu zeigen aber wenn ich den Befehl bearbeite, zeige es Fehler! –

+1

Manchmal spuckt ein WYSIWYG-Editor einige interessante Dinge aus. Es sieht so aus, als ob möglicherweise abwesenheit.data_ keinen Unterstrich haben sollte. Bestätige dies. Es sieht so aus, als könnten Sie einfach die gewünschten Felder auswählen, einen Zähler (*) in die Auswahlliste mit diesen Feldern setzen, Ihre Tabellen mit diesen Feldern verbinden und die Anweisung mit einer GROUP BY-Liste beenden, die der SELECT-Liste minus COUNT entspricht (*). –