Ich benutze MySQL. Hier ist mein Schema:MySQL: Ungültige Verwendung der Gruppenfunktion
Lieferanten (sid: integer, sname: string, Adresse string)
Parts (pid: integer, pname: string, Farbe: string)
Katalog (sid: integer, pid: integer, Kosten: real)
(Primärschlüssel bolded sind)
ich bin t rocknung eine Abfrage zu schreiben, alle Teile auszuwählen, die von mindestens zwei Lieferanten hergestellt werden:
-- Find the pids of parts supplied by at least two different suppliers.
SELECT c1.pid -- select the pid
FROM Catalog AS c1 -- from the Catalog table
WHERE c1.pid IN ( -- where that pid is in the set:
SELECT c2.pid -- of pids
FROM Catalog AS c2 -- from catalog
WHERE c2.pid = c1.pid AND COUNT(c2.sid) >= 2 -- where there are at least two corresponding sids
);
Zunächst einmal bin ich sogar darüber auf den richtigen Weg?
Zweitens bekomme ich diesen Fehler:
1111 - Invalid use of group function
Was mache ich falsch?
Also 'HAVING' zählt zuerst dann filtert, ist das richtig? –
Auch wenn GROUP BY verwendet wird, sollte HAVING nach GROUP BY – Viacheslav
sein. Außerdem muss GROUP BY vor HAVING sein .... Sollte Bandoleros Kommentar gelesen haben: D – Andrew