J'essaie de compter les voyages auxquels les médecins sont allés et de calculer le coût total des péages. J'utilise ORACLE XE 11g et SQL Developer. J'ai essayé de le faire avec SELECT dans corrélative sous-requête, mais je reçois ce message:Sous-requête corrélée Oracle SQL: pas une fonction de groupe à un seul groupe
ORA-00937: not a single-group group function
00937. 00000 - "not a single-group group function"
*Cause:
*Action:
Error at Line: 2 Column: 11
Ceci est question j'ai parlé:
SELECT person.name, person.surname, COUNT(DISTINCT travelID) AS numberoftravels,
(SELECT SUM(costs.cost) FROM costs
JOIN travel ON costs.travelID = travel.travelID
JOIN person ON travel.personID = person.personID
JOIN staff ON travel.personID = staff.staffID
WHERE stafftype = 'Doctor' AND costtype = 'tolls' and staff1.staffID = person.personID
) AS tollscost
FROM travel JOIN person ON person.personID = travel.personID
JOIN staff staff1 ON staff1.staffID = person.personID
WHERE stafftype = 'Doctor'
GROUP BY person.name, person.surname;
Le comptage a travaillé très bien avant que j'ajouté sous-requête. Est-ce que quelqu'un comprend pourquoi je pourrais avoir ce problème?
déplacez simplement la sous-requête en tant qu'expression jointe à la place. C'est aussi beaucoup plus correct – Sebas