Hier meine SQL (Oracle) Code:SQL Join Statement + COUNT funktioniert nicht
SELECT a.Task_id, a.Activity_desc AS "ACTIVITY DESCRIPTION" ,
a.Activity_date || ' (' || a.Activity_day || ')' AS "ACTIVITY DATE",
pr.Project_name, COUNT(a.Volunteer_id)
FROM task_activity a
JOIN task t
ON a.Task_id = t.Task_id
JOIN project pr
ON t.Project_id = pr.Project_id
GROUP BY a.Task_id
ORDER BY Task_id
ist ein Fehler:
ORA-00979: kein GROUP BY-Ausdruck
Ohne Gruppe Positionspapier Tabelle sieht wie folgt aus:
ich möchte Nummer o zählen f Freiwillige für jede Aufgabe und Gruppe nach task_id, aber nach stundenlangen Versuchen gab ich auf
Warum wählen Sie 'pr.Projektname'? –
Per Definition muss alles, was nicht in der Gruppe von IN YOUR SELECT STATEMENT enthalten ist, entweder in einer Distinct-Klausel oder einer Aggregatfunktion sein. Da Sie nach der Task-ID gruppieren, wie ordnen Sie die anderen Spalten zu? –
Möchten Sie Freiwillige nach task_id oder nach task_id UND Datum abzählen? Wenn nur durch task_id, dann gibt es keine Möglichkeit, etwas, das mit "date" im Ergebnis zu tun hat, sinnvoll einzubeziehen. (Möchten Sie das erste und das letzte Datum für diese Task-ID anzeigen? DAS kann getan werden.) Anders als das: Angenommen, jede Task-ID gehört nur zu einem Aktivitäts_desc und nur einem Projekt_Name (sonst nicht wieder, was Sie versuchen zu tun) Sinnvoll), - Wenn also jede Task_ID nur zu einem activity_desc und project_name gehört, füge activity_desc und project_name zur GROUP BY-Klausel hinzu. – mathguy