MySQL kullanıyorum. İşte benim şemam:
Tedarikçiler ( sid: integer , sname: string, adres dizesi)
Parçalar ( pid: tamsayı , pname: dize, renk: dize)
Katalog ( sid: tamsayı, pid: tamsayı , maliyet: gerçek)
(birincil tuşlar kalın yazılmıştır)
En az iki tedarikçi tarafından yapılan tüm parçaları seçmek için bir sorgu yazmaya çalışıyorum:
-- 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
);
Öncelikle, bunu doğru yoldan mı yapıyorum?
İkincisi, bu hatayı alıyorum:
1111 - Grup işlevinin geçersiz kullanımı
Neyi yanlış yapıyorum?