Używam MySQL. Oto mój schemat:MySQL: Niewłaściwe użycie funkcji grupy
Dostawcy (SID: Integer, sname: string, adres string)
części (PID: całkowite, PNAME: String, kolor: String)
katalogowa (SID: całkowita, PID: całkowita, koszt real)
(klucze główne są pogrubione)
ja t uszenie napisać kwerendę, aby wybrać wszystkie elementy, które są wykonane przez co najmniej dwóch dostawców:
-- 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
);
Po pierwsze, mam nawet zamiar o tym właściwą drogę?
Po drugie, pojawia się ten błąd:
1111 - Invalid use of group function
Co robię źle?
Więc "HAVING" liczy się najpierw, a następnie filtry, czy tak? –
Również jeśli użyto GROUP BY, HAVING powinno być po GROUP BY – Viacheslav
Również GROUP BY musi być przed HAVING .... Powinien przeczytać komentarz Bandolero: D – Andrew